MySQL字段值计数

时间:2014-04-22 21:20:11

标签: mysql sql

我有一个包含字段idset的MySQL视图。因为它是一个视图,所以大多数id被重复并且具有重复的条目。例如,id = 120158可能有5行,其中3 set = A,2 set = B.我想从视图中运行查询以显示数字每个id的行与其对应的集合相关联。 我试过了:

SELECT `id`, 
    `set`,
    (SELECT COUNT(set)) AS `CountOfSet`
FROM `view1`

但是,这只会返回相同的视图(仍然存在重复的行),每行CountOfSet等于1。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您应该按idset对结果进行分组,以获得所需的结果:

SELECT `id`, `set`, COUNT(*) AS `CountOfSet` FROM `view1`
GROUP BY `id`, `set`

这会将结果返回为

120158 A 3
120158 B 2

答案 1 :(得分:0)

您需要使用GROUP BY子句对数据进行分组:

GROUP BY `id`, `set`

全部组成:

SELECT `id`, 
`set`,
COUNT(*) AS `CountOfSet`
FROM `view1`
GROUP BY `id`, `set`