回答

收藏

SQL查询:需要按计数顺序,大部分必须在顶部,其余紧随其后

技术问答 技术问答 512 人阅读 | 0 人回复 | 2023-09-14

桌布
& [$ w8 S5 h" s' [# `JobCode Job1 Job2 Job3 zip------- ---- ---- ---- ----------F       F    S    NULL 90030F       F    S    NULL 90031F       F    S    NULL 90031F       F    S    NULL 90034F       F         NULL 90034F       F    S    NULL 90034F       F    S    NULL 90034F       F         NULL 90034F       F    S    NULL 90035F       F         NULL 90035-4640预期成绩:6 `$ `4 ^; W% B" \  p/ J, Q
JobCode Job1 Job2 Job3 zip------- ---- ---- ---- ----------F       F    S    NULL 90034F       F         NULL 90034F       F    S    NULL 90034F       F    S    NULL 90034F       F         NULL 90034F       F    S    NULL 90031F       F    S    NULL 90031F       F    S    NULL 90030F       F    S    NULL 90035F       F         NULL 90035-4640那些是一样的Zip其他操作应在顶部进行。ORDER BY Zip不起作用,因为它按ZIP排序,而不是按出现的次数排序$ {: d1 C3 u( I; c4 s8 `0 w
使用SQL Server 08) `4 b5 M* Y9 ?8 n+ v& r- D
                                                                1 ~8 [* B" C& J
    解决方案:                                                                0 ~2 }# O6 u) s) c3 u
                                                                SQL Server 2008使用 COUNT() OVER
- s$ p- d4 I8 h# [) K$ b/ @select *,c = count(1) over (partition by zip)from tblorder by c desc;如果你不需要查看其他列,你可以COUNT() OVER子句移到ORDER BY子句中。
# F& v6 N9 r: N. `2 X0 j3 Gselect JobCode,Job1,Job2,Job3,zipfrom tblorder by count(1) over (partition by zip) desc;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则