Select a.states,MAX(a.cnt) from
(Select ci_location.state as states,Count(CI_Location.State) Cnt from
Fact_Transactions ft
Inner join CI_Location on ft.ID_Location = CI_Location.ID_Location
Where id_model like 'smsg%'
Group by State)a
Group by a.states,a.Cnt
输出: -
State Count
Alabama 7
Arizona 15
Arkansas 4
California 100
Colorado 7
Required output:-
state output
California 100
此代码不是从我的表中提取具有最大计数值的STATE ...有问题吗?
答案 0 :(得分:0)
尝试以下
SELECT TOP 1 -- or TOP 1 WITH TIES
ci_location.state as states,
Count(CI_Location.State) Cnt
FROM Fact_Transactions ft
INNER JOIN CI_Location ON ft.ID_Location = CI_Location.ID_Location
WHERE id_model like 'smsg%'
GROUP BY ci_location.state
ORDER BY Cnt DESC
答案 1 :(得分:0)
您应该使用row_number()
函数方法来获取最大计数状态
SELECT * FROM
(
SELECT
l.state as states,
Count(l.State) as Cnt,
row_number() over (order by Count(l.State) desc) Sq
FROM Fact_Transactions ft
INNER JOJN CI_Location l on ft.ID_Location = l.ID_Location
WHERE l.id_model like 'smsg%'
GROUP BY l.State
) a
WHERE sq = 1
注意:对于当前查询,您将进一步对派生表结果进行分组。尝试删除GROUP BY
条款&只需使用max()即可获得最高计数状态。
答案 2 :(得分:0)
只需通过
删除组中的a.cnt从
中选择a.states,MAX(a.cnt)(选择ci_location.state作为状态,Count(CI_Location.State)Cnt来自 Fact_Transactions ft ft.ID_Location = CI_Location.ID_Location上的内连接CI_Location 其中id_model喜欢'smsg%' 按国家分组)
按a.states分组