当我运行查询编号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, name, 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
试试这个:
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