SQL每日一题(20231020)

2024-04-25 09:49:57 浏览数 (3)

题目

有如下一张表G1020

希望用SQL 得出如下结果 :

要求:

1、对每行SNO出现的N1~N5的数出现的次数进行排序,出现的越多排在最前面

2、如果次数相同,则较大的排在前面

例如:ID为3的这一行,因为12和11出现的次数最多,排在第三行的前面,剩余的数字都只出现了一次,则从大到小排序。

测试语句

代码语言:javascript复制
CREATE TABLE G1020
([ID] [INT] IDENTITY(1,1) NOT NULL,
SNO VARCHAR(10),
N1 VARCHAR(2),
N2 VARCHAR(2),
N3 VARCHAR(2),
N4 VARCHAR(2),
N5 VARCHAR(2)
)  
INSERT INTO G1020 VALUES 
('A001','6','8','10','11','12'),
('A002','2','4','5','7','12'),
('A003','11','12','13','14','15'),
('A004','1','5','7','8','12'),
('A005','4','6','9','10','15'),
('A006','2','3','12','13','14'),
('A007','5','6','7','9','13')

1 人点赞