sql 按日期分组每天给出相同的值

sql group by date gives same value everyday

所以我想按天分组进行统计,所以我每天都有数据(类型 1 被买入,类型 0 被卖出)但是查询每天都给我相同的结果,这是不正确的,有人可以帮助我吗这个代码?

SELECT 
            DATE(from_unixtime(credit_transaction_time)) AS data_date,
            total_spend AS credits_spend,
            total_bought AS credits_bought
        FROM credit_transactions
            JOIN (SELECT SUM(`credit_transaction_amount`) AS total_spend FROM credit_transactions WHERE `credit_transaction_type` = 0 GROUP BY DATE(from_unixtime(credit_transaction_time))) AS spend
            JOIN (SELECT SUM(`credit_transaction_amount`) AS total_bought FROM credit_transactions WHERE `credit_transaction_type` = 1 GROUP BY DATE(from_unixtime(credit_transaction_time))) AS bought
        GROUP BY DATE(from_unixtime(credit_transaction_time))

使用条件聚合:

SELECT DATE(from_unixtime(credit_transaction_time)) AS data_date,
       SUM(CASE WHEN credit_transaction_type = 0 THEN credit_transaction_amount ELSE 0 END) as credits_spend,
       SUM(CASE WHEN credit_transaction_type = 1 THEN credit_transaction_amount ELSE 0 END) as credits_bought
FROM credit_transactions
GROUP BY DATE(from_unixtime(credit_transaction_time));

您的查询无效,因为您没有 ON 条件。在大多数数据库中,这会导致语法错误,但 MySQL 允许此语法。