【发布时间】:2011-06-09 15:59:58
【问题描述】:
我有 3 张桌子。我想按 item.name 分组并计算可以在 idetail 中找到的次数。此查询只计算所有行而不是按行分组。
有人知道怎么解决吗?
SELECT i.name, COUNT(i.name)
FROM item AS i
INNER JOIN item_category AS ic ON i.i_category_id = ic.ic_id
INNER JOIN idetail AS id ON ic.ic_id = id.id_category_id
WHERE ic.ic_id = 1002
GROUP BY i.name
【问题讨论】:
-
一定有问题,或者我遗漏了一些东西。
This query only counts all rows not the grouped by rows.先生,据我所知,此脚本通过分组计算COUNT(*),并且正确执行,即结果必须是每个item.name的数字,而不是所有行的计数。你实际上得到了什么输出? -
我对你真正想要的东西也有点困惑——你能举个例子吗?也许您打算使用
SELECT COUNT(DISTINCT i.name) . . .或SELECT i.name, COUNT(id.id_id) FROM . . . LEFT JOIN idetail id . . . GROUP BY i.name之类的东西?
标签: sql sql-server count group-by