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

时间:2019-02-17 19:38:12

标签: mysql sql pdo count

我的桌子:

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更改为:

1

它返回正确的值,但是我不想使用$countWeek = $conn->query("SELECT item_id FROM `myTable` GROUP BY `item_id`")->rowCount(); ,因为我只需要计算行数,而rowCount()中的fetchColumn()在速度方面要好得多。

1 个答案:

答案 0 :(得分:1)

您可以使用counct(distinct item_id)

    SELECT count(distinct item_id) 
    FROM `myTable`