Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获得一列的组的降序列表,该列是该组另一列的总和?_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 如何获得一列的组的降序列表,该列是该组另一列的总和?

Sql 如何获得一列的组的降序列表,该列是该组另一列的总和?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想了解如何根据一组列值中另一列值的总和对该组列值进行降序 根据样本数据: mtype location mcount =========================== X TX 4 Z AL 10 C TX 15 M AL 3 Z TX 12 M CT 4 M TX

我想了解如何根据一组列值中另一列值的总和对该组列值进行降序

根据样本数据:

mtype    location    mcount
===========================
X        TX          4
Z        AL          10
C        TX          15
M        AL          3
Z        TX          12
M        CT          4
M        TX          20
Z        CT          40
首先,我想按状态确定SUMmcount

location    SUM(mcount)
=======================
TX          51
CT          44
AL          13
然后基于这个总和,我希望先返回总和最高的状态行,然后依此类推

因此,上面的数据将像这样返回,首先返回所有TX行,然后返回CT,最后返回AL行

mtype    location    mcount
===========================
X        TX          4
C        TX          15
Z        TX          12
M        TX          20
M        CT          4
Z        CT          40
Z        AL          10    
M        AL          3
行的顺序超出其计数的组和并不重要

我已经获得了总人数下降最多的州的名单:

SELECT [LOCATION]
FROM A_TABLE
GROUP BY [STATE]
ORDER BY SUM(MCOUNT) DESC
要得到最终的返回表,应该将其放入临时表中,并遍历[STATE]值? 差不多

For each [LOCATION] in temptable
    SELECT * FROM temptable tt WHERE tt.LOCATION = [LOCATION]
Next
那么结果如何呢?建议的处理方法是什么? 谢谢您

按以下顺序使用带窗口的金额:

以你的桌子为例 挑选* 从值'X','TX',4, “Z”,“AL”,10, "C","TX",15,, “M”,“AL”,3, ‘Z’、‘TX’、12、, “M”,“CT”,4, “M”,“TX”,20, 'Z','CT',40Vmtype,location,mcount 挑选* 从你的桌子上 按位置描述分区上的按和计数排序, mcount;
太好了,谢谢!您将如何从中选择前两个不同的位置?在本例中,返回属于TX和CT的6行。在我看来,这是一个单独的问题,@CarlosMendieta,然而,有很多答案证明了这一点。例如获得前2名的逻辑是相同的。