同一查询中的 INNER JOIN 和 COUNT

INNER JOIN and COUNT in the same query

我在将 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 以仅获取街道名称?

如有任何建议,我们将不胜感激!

试试这个...

加入 streets table 后,您将不得不使用聚合函数来获取结果集中的名称

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

以下应该有效

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