sql聚类排序问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:50:38
city flag num total
pek 1 100 1000
pek 0 300 1000
pek 0 300 1000
pek 1 100 1000
pek 1 100 1000
pek 0 100 1000
sha 1 400 600
sha 0 100 600
sha 0 100 600
can 0 100 400
can 1 200 400
can 1 100 400
khn 0 200 300
khn 1 100 300
一个city的total是用其flag为0和1的所有num求和得到,并按照total降序排列,同事保证同一city的记录聚类,现在这个结果已经可以通过一个sql得到的了,

但是请问如何再使它成为:
pek 0 400 1000
pek 1 600 1000
sha 0 200 600
sha 1 400 600
can 0 100 400
can 1 300 400
khn 0 200 300
khn 1 100 300
其中,同一个city,flag=0和flag=1这两条记录不用排序,可以结合上面的sql得到么?请高手指教!谢谢!

--生成测试数据
CREATE TABLE #Test
(
city VARCHAR(200),
flag INT,
num INT,
total INT
)
INSERT INTO #Test
SELECT 'pek', 1,100, 1000
UNION ALL
SELECT 'pek' ,0 ,300 ,1000
UNION ALL
SELECT 'pek' ,0 ,300 ,1000
UNION ALL
SELECT 'pek' ,1 ,100 ,1000
UNION ALL
SELECT 'pek' ,1 ,100 ,1000
UNION ALL
SELECT 'pek' ,0 ,100 ,1000
UNION ALL
SELECT 'sha' ,1 ,400 ,600
UNION ALL
SELECT 'sha' ,0 ,100 ,600
UNION ALL
SELECT 'sha' ,0 ,100 ,600
UNION ALL
SELECT 'can' ,0 ,100 ,400
UNION ALL
SELECT 'can' ,1 ,200 ,400
UNION ALL
SELECT 'can' ,1 ,100 ,400
UNION ALL
SELECT 'khn' ,0 ,200 ,300
UNION ALL
SELECT 'khn' ,1 ,100 ,300

--查询

SELECT city,flag,SUM(NUM)AS NUM ,MIN(total)AS total