我有这些表:PARTIDO,SUBLEMA,LISTA,REGISTRO_DE_VOTOS。
使用此内连接语句:
SELECT partido.id_partido, sublema.id_sublema,lista.numero_lista
FROM partido INNER JOIN sublema ON
partido.id_partido=sublema.id_partido INNER JOIN
lista ON sublema.id_sublema=lista.id_sublema INNER JOIN
registro_de_votos ON lista.numero_lista=registro_de_votos.numero_lista
我得到了以下结果:
id_partido | id_sublema| numero_lista
--------------------------------------
2 | 2 | 222
1 | 1 | 111
1 | 1 | 111
2 | 2 | 222
2 | 2 | 222
1 | 1 | 111
2 | 2 | 222
2 | 2 | 222
1 | 1 | 111
2 | 2 | 222
3 | 3 | 333
有没有办法计算每个id_partido的记录?所以我可以这样得到somthig:
id_partido | count
-------------------
1 | 4
2 | 5
3 | 1
列id_partido的值未知。可以任意数字。
答案 0 :(得分:0)
是:
SELECT partido.id_partido, COUNT(sublema.id_sublema)
FROM partido INNER JOIN sublema ON
partido.id_partido=sublema.id_partido INNER JOIN
lista ON sublema.id_sublema=lista.id_sublema INNER JOIN
registro_de_votos ON lista.numero_lista=registro_de_votos.numero_lista
GROUP BY partido.id_partido
GROUP BY
子句捆绑所有具有相同id_partido
的元素,然后COUNT()
函数计算每个id_sublema
的{{1}}
如果我使用" SELECT partido.id_partido,COUNT(sublema.id_sublema)作为cantidad ......"然后" ...... orti by cantidad DESC"我得到了一个在顶部有更多记录的人。我怎么才能得到第一个?
您可以使用id_partido
TOP 1