我有一个包含字段id
和set
的MySQL视图。因为它是一个视图,所以大多数id
被重复并且具有重复的条目。例如,id
= 120158可能有5行,其中3 set
= A,2 set
= B.我想从视图中运行查询以显示数字每个id
的行与其对应的集合相关联。
我试过了:
SELECT `id`,
`set`,
(SELECT COUNT(set)) AS `CountOfSet`
FROM `view1`
但是,这只会返回相同的视图(仍然存在重复的行),每行CountOfSet
等于1。有什么想法吗?
答案 0 :(得分:1)
您应该按id
和set
对结果进行分组,以获得所需的结果:
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`