mysql查询 - 用group by嵌套

时间:2014-05-16 19:11:47

标签: mysql

我想创建一个查询,该查询返回当天每小时进入的潜在客户数量,以及每小时的销售数量。结果是24行,每天每小时1行。

我的查询适用于/或,但如何与一个查询结合使用?

表' mytable'是:

id  datetime  status 
--------------------

这是总计查询:

SELECT FROM_UNIXTIME(datetime, '%H') AS Hour, 
 count(id) AS Count

FROM mytable

GROUP BY Hour

以及"出售":

的查询
SELECT FROM_UNIXTIME(datetime, '%H') AS Hour, 
 count(id) AS Count

FROM mytable

WHERE status='Sold'    

GROUP BY Hour

所以我希望结果返回看起来像这样的东西:

Hour Count  Sold
----------------
0     5      2
1     4      0
2     9      6
.
.
.
.
23    6      1

我无法解决这个问题。

2 个答案:

答案 0 :(得分:1)

在mysql中你可以使用sum和expression,它会产生boolean,这会给你一个销售状态的计数

SELECT 
    FROM_UNIXTIME(datetime, '%H') AS Hour, 
    COUNT(id) AS Count,
    SUM(status='Sold' ) sold
FROM mytable
GROUP BY Hour

答案 1 :(得分:0)

试试

  SELECT CASE WHEN status='Sold' THEN FROM_UNIXTIME(datetime, '%H') ELSE 0 END AS Hour, 
  ,FROM_UNIXTIME(datetime, '%H') AS Hour2 ,count(id) AS Count
  FROM mytable
  GROUP BY Hour