假设我有两个表组织和状态 orgs是(o_ID,state_abbr),状态是(state_abbr,state)
o_ID state_abbr
1 CT
2 OH
3 OH
state_abbr state
CT Connecticut
OH Ohio
Alabama AL
我想创建一个显示每个州的o_ID计数的视图:
state_abbr state count
CT Connecticut 1
OH Ohio 2
我会使用什么样的SQL语句? 我尝试过的只显示第一个状态并总计所有计数。
提前谢谢。
答案 0 :(得分:3)
select
o.state_abbr,
s.state,
o.[count]
from states s
inner join
(
select state_abbr, count(*) as count
from orgs
group by state_abbr
) o
on s.state_abbr = o.state_abbr
答案 1 :(得分:1)
您正在寻找“GROUP BY”语句,您可以在其中告诉数据库如何对数据进行分组以进行计数。您需要按“state_abbr”和“state”进行分组,因此您的查询将如下所示:
SELECT
states.state_abbr
, states.state
, COUNT(*)
FROM
orgs
INNER JOIN states ON states.state_abbr=orgs.state_abbr
GROUP BY
state_name
答案 2 :(得分:0)
SELECT O.STATE_ABBR,S。[STATE],COUNT(S。[STATE])FROM ORGS O INNER JOIN 状态在O.STATE_ABBR = S.STATE_ABBR GROUP BY O.STATE_ABBR,S。[STATE]