如何对重复的行进行分组并计算它们?
Posted
技术标签:
【中文标题】如何对重复的行进行分组并计算它们?【英文标题】:How to group duplicated rows and count them? 【发布时间】:2019-02-17 19:38:11 【问题描述】:我的桌子:
id | item_id
1 | 5
2 | 5
3 | 7
4 | 2
sql:
$countWeek = $conn->query("SELECT count(item_id) FROM `myTable` GROUP BY `item_id`")->fetchColumn();
如您所见,我有 2 个重复的行,item_id = 5
我想将这些重复的行分组并输出3
行计数,但是当我这样做时echo $countWeek
它输出1
,为什么?
当我把上面的sql改成:
$countWeek = $conn->query("SELECT item_id FROM `myTable` GROUP BY `item_id`")->rowCount();
它返回正确的值,但我不想使用rowCount()
,因为我只需要计算行数,而fetchColumn()
和count()
在速度方面要好得多。
【问题讨论】:
【参考方案1】:你可以使用 couct(distinct item_id)
SELECT count(distinct item_id)
FROM `myTable`
【讨论】:
以上是关于如何对重复的行进行分组并计算它们?的主要内容,如果未能解决你的问题,请参考以下文章