问题描述
试试这个:
SELECT id, name,
(SELECT COUNT(name)
FROM markers im
WHERE state like 'OR'
GROUP BY name
HAVING im.name=m.name) as count
FROM markers m
WHERE state like 'OR'
GROUP BY name, id
解决方法
当我运行查询编号1时:
SELECT id,name,COUNT(name) AS count
FROM markers
WHERE state like 'OR'
group by named
我得到以下结果:
id name count
14 Alsea 2
76 Applegate Valley 1
3 Ashland 9
64 Beaver 1
26 Bend 1
10 Carlton 2
很好,除了,我希望每个被计数名称的实例都以其各自的ID出现,如查询号2的结果所示:
SELECT id,COUNT(name) AS count
FROM markers
WHERE state like 'OR'
group by name,id
产生以下结果:
id name count
14 Alsea 1
28 Alsea 1
76 Applegate Valley 1
3 Ashland 1
13 Ashland 1
16 Ashland 1
20 Ashland 1
22 Ashland 1
43 Ashland 1
48 Ashland 1
51 Ashland 1
72 Ashland 1
64 Beaver 1
26 Bend 1
10 Carlton 1
27 Carlton 1
我是否可以运行一个查询,该查询将在每行中返回查询编号2的ID和名称以及查询编号1中的相应计数,如下所示?
id name count
14 Alsea 2
28 Alsea 2
76 Applegate Valley 1
3 Ashland 9
13 Ashland 9
16 Ashland 9
20 Ashland 9
22 Ashland 9
43 Ashland 9
48 Ashland 9
51 Ashland 9
72 Ashland 9
64 Beaver 1
26 Bend 1
10 Carlton 2
27 Carlton 2