我有一个问题可以用一个简单的虚拟表来解释。
“饮料”表只有三个字段:
Id(1..N)-主键
日期('2012-09-19'…)-每个日期都可能经常发生
热(1表示是,0表示假)。
我想列一张这样的单子:

    Date         Total    Hot    Cold
    2012-09-19   14       6      8
    2012-09-10   21       18     3

等。
字段“Cold”是按(Total-Hot)计算的。
到目前为止我得到的是:
    SELECT Date, count(*) AS Total FROM Drinks GROUP BY Date;

这给了我想要的表,当然没有列“Hot”和“Cold”。
有没有办法修改我的查询以便我可以一次性生成这个表?当然,我可以使用PHP代码分阶段构建表,但这可能不是一种优雅的方式,也不是最快的方式。
我很高兴看到和学习。。。:)

最佳答案

SELECT Date,
    count(*) AS Total,
    SUM(Hot = 1) Hot,
    SUM(Hot = 0) Cold
FROM Drinks
GROUP BY Date;

10-08 17:57