【发布时间】:2015-06-13 02:26:39
【问题描述】:
我有一张桌子:
id value date
1 1 2014-08-10 10:00:00
1 2 2014-08-10 10:05:00
1 1 2014-08-10 12:00:00
1 1 2014-08-11 12:05:00
1 2 2014-08-11 12:06:00
2 2 2014-08-10 10:00:00
2 2 2014-08-11 10:05:00
2 1 2014-08-11 12:00:00
2 1 2014-08-20 12:05:00
2 2 2014-08-20 12:06:00
我想获取第一天每个 id 的值的总数。我可以在 MySQL 中使用以下命令:
SELECT test.id, COUNT(CASE WHEN value=1 THEN 1 END) AS 'total_value_1',
COUNT(CASE WHEN value=2 THEN 1 END) AS 'total_value_2'
FROM test,
(SELECT id, date(min(date)) as firstDay
FROM test
GROUP BY id) AS temp
WHERE test.id = temp.id AND date(test.date) = temp.firstDay
GROUP BY test.id;
结果是:
id total_value_1 total_value_2
1 2 1
2 0 1
我如何在 MongoDB 中做到这一点?
【问题讨论】:
-
我决定不使用 MongoDB,但我仍然想知道答案。