1

我有一个 mysql 查询,列出了标题、艺术家的数量

SELECT count(Key) AS Ocount, artist, title,domain, DATE_FORMAT(`FE`,'%m') AS eMonth
FROM gr 
WHERE domain = 'site.com'
GROUP BY title
ORDER BY eMonth,Ocount Desc

第一个结果是

'195', 'akon', 'beautiful', 'site.com', '01'
'20', 'ludacris', 'intro', 'site.com', '01'
'11', 'don omar', 'taboo', 'site.com', '01'

运行相同的查询

SELECT count(Key) AS Ocount, artist, title,domain, DATE_FORMAT(`FE`,'%m') AS eMonth
FROM gr 
WHERE domain = 'site.com'
AND artist = 'akon'
AND title = 'beautiful'

结果

'100', 'akon', 'beautiful', 'site.com', '01'

这怎么可能?无论我如何计算,它不应该给出相同的结果吗?

4

1 回答 1

1

如果你想要每个标题艺术家组合的计数,你会想要使用

GROUP BY artist, title

这将count(id)表示该表中存在艺术家+标题组合的实例数。您可以在计算WHERE之前使用该子句过滤结果COUNT()

您可以通过从一小部分数据开始并检查结果是否准确来检查结果COUNT()是否准确。

仅按艺术家分组将产生与该艺术家匹配的行数,无论标题如何。

于 2013-01-10T20:21:42.027 回答