1
我想知道有多少行如何去这个查询返回:如何使用db2中的group by子句做COUNT(*)?
SELECT
MONTH(DHSTMP), SUM(DHDLDY), SUM(DHBUDS), YEAR(DHSTMP)
FROM
DSHDAY
WHERE
DHSTMP BETWEEN '2009-07-26 00:00:00' AND '2011-03-09 23:59:59'
GROUP BY
YEAR(DHSTMP), MONTH(DHSTMP) ORDER BY YEAR(DHSTMP), MONTH(DHSTMP)
所以,我想:
SELECT
COUNT(*)
FROM
DSHDAY
WHERE
DHSTMP BETWEEN '2009-07-26 00:00:00' AND '2011-03-09 23:59:59'
GROUP BY
YEAR(DHSTMP), MONTH(DHSTMP)
但它告诉我多少行每个组。
如何获取第一个查询将返回的行数?
我注意到,这也适用,它是否更好的性能? SELECT COUNT(*)FROM(SELECT 0 FROM DSHDAY WHERE DHSTMP BETWEEN'2009-07-26 00:00:00'AND'2011-03-09 23:59:59')i – Mike 2011-03-09 16:13:19
您的变体会将这些条目数加倍同月/年。这就是为什么我在列连接上做了一个明确的计数。如果添加了GROUP BY,则评论中的SQL可能没有问题。看到我编辑的答案。 – 2011-03-09 16:32:49