Table: transactions
+------------------+------+ | Column Name | Type | +------------------+------+ | transaction_id | int | | amount | int | | transaction_date | date | +------------------+------+ The transactions_id column uniquely identifies each row in this table. Each row of this table contains the transaction id, amount and transaction date.
Write a solution to find the sum of amounts for odd and even transactions for each day. If there are no odd or even transactions for a specific date, display as 0.
Return the result table ordered by transaction_date in ascending order.
The result format is in the following example.
Example:
Input:
transactions table:
+----------------+--------+------------------+ | transaction_id | amount | transaction_date | +----------------+--------+------------------+ | 1 | 150 | 2024-07-01 | | 2 | 200 | 2024-07-01 | | 3 | 75 | 2024-07-01 | | 4 | 300 | 2024-07-02 | | 5 | 50 | 2024-07-02 | | 6 | 120 | 2024-07-03 | +----------------+--------+------------------+
Output:
+------------------+---------+----------+ | transaction_date | odd_sum | even_sum | +------------------+---------+----------+ | 2024-07-01 | 75 | 350 | | 2024-07-02 | 0 | 350 | | 2024-07-03 | 0 | 120 | +------------------+---------+----------+
Explanation:
Note: The output table is ordered by transaction_date in ascending order.
This approach applies a HashMap (or dictionary) to aggregate sums for odd and even transaction IDs by date.
Iterate through the transaction data, evaluate if a transaction ID is odd or even, and then aggregate the amounts by their respective dates.
This implementation utilizes a defaultdict to store 'odd' and 'even' sums for each date. We sort the dates while preparing the result to ensure ascending order output.
Java
Time Complexity: O(n log n) due to sorting, where n is the number of transactions.
Space Complexity: O(n) to store sums per date.
This approach uses an SQL query to group data by dates and conditionally sum based on odd/even transaction ids. This ensures efficiency via database optimization features.
This SQL query uses conditional aggregation. For each transaction_date, it calculates the sum of 'amount' for both odd and even transaction ids.
Time Complexity: O(n), where n is the number of transactions, given operations are constant-time arithmetic and grouping over indexed columns.
Space Complexity: O(n) due to required storage of transaction groupings in memory.
| Approach | Complexity |
|---|---|
| Using HashMap for Aggregation | Time Complexity: O(n log n) due to sorting, where n is the number of transactions. |
| SQL Query Approach | Time Complexity: O(n), where n is the number of transactions, given operations are constant-time arithmetic and grouping over indexed columns. |
How many LeetCode problems should you solve? #leetcode #techinterview #developer #softwareengineer • CrioDo • 304,695 views views
Watch 9 more video solutions →Practice Odd and Even Transactions with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor