在同一查询中INNER JOIN和COUNT

时间:2015-03-25 20:58:22

标签: sql join jdbc count hsqldb

我在同一查询中将INNER JOIN和COUNT放在一起时遇到了麻烦。

表格是:

TABLE STREETS

ID | STREET_NAME
------------------------
1  | Elm street
2  | Some other street
3  | Unknown street
4  | Killer street
5  | Dead-end street




TABLE ACCIDENTS_STREETS

STREET_ID | ACCIDENT_ID
-----------------------
   2      | 4
   2      | 7
   2      | 2
   2      | 1
   5      | 3

我想得到大多数事故发生的街道名称。

这是COUNT:

SELECT TOP 1 COUNT(STREET_ID) AS dangerous_street FROM ACCIDENTS_STREETS GROUP BY STREET_ID ORDER BY dangerous_street DESC

如何在那里添加INNER JOIN以仅获取街道的名称?

感谢任何建议!

2 个答案:

答案 0 :(得分:3)

以下应该有效

SELECT TOP 1 S.STREET_NAME,COUNT(a.*) AS dangerous_street 
FROM ACCIDENTS_STREETS A 
inner Join STREET S on S.ID = A.STREET_ID 
GROUP BY S.STREET_NAME ORDER BY dangerous_street DESC

答案 1 :(得分:0)

试试这个......

加入streets表后,您必须使用聚合函数来获取结果集中的名称

SELECT 
TOP 1 COUNT(STREET_ID) AS dangerous_street
, min( STREET_NAME) dangerous_STREET_NAME
FROM ACCIDENTS_STREETS acc
inner join STREETS str
on acc.STREET_ID=str.id
GROUP BY STREET_ID 
ORDER BY dangerous_street DESC
相关问题