如何对重复行进行分组并对其进行计数?

问题描述 投票:2回答:1

我的桌子:

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()在速度方面要好得多。

mysql sql pdo count
1个回答
1
投票

你可以使用counct(distinct item_id)

    SELECT count(distinct item_id) 
    FROM `myTable` 
© www.soinside.com 2019 - 2024. All rights reserved.