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; |
|
|
|
|
|