Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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
Mysql SQL中的顺序和组_Mysql_Sql_Sql Order By - Fatal编程技术网

Mysql SQL中的顺序和组

Mysql SQL中的顺序和组,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,我有一个数据库: Serial no. Name 1 A 1 B 2 Aa 2 Z 3 D 3 A 3 C 我想知道结果 Serial no. Name 2 Aa 2 Z 1 A 1 B 3 D 3 A 3

我有一个数据库:

Serial no.  Name
1            A
1            B
2            Aa
2            Z
3            D
3            A
3            C
我想知道结果

Serial no.  Name
2            Aa
2            Z
1            A
1            B
3            D
3            A
3            C
我希望每个组(具有相同序列号)根据组中的名字与其他组一起排序,但在组中,名称顺序应保持不变

我已经试过了

Select * From tablename
group by `Serial no.` 
order by `Name`
但我得到了:

Serial no.  Name
2            Aa
1            A
3            D

这是表中的数据:

SELECT * FROM #temp

这是我为以下查询获得的输出:


在你的桌子上分组根本没有意义。点餐就可以了

select Serialno,Name
from table _name
order by Name desc

用SQL做你想做的事情是不可能的

您希望每个序列号组中的顺序与表中的顺序相同,但表中没有定义良好的顺序

SQL中的表是一组无序的行,任何顺序都必须由
orderby
子句强制执行。因此,除非您的顺序可以用SQL表示,并且不依赖于表中行的物理位置,否则您的问题无法解决


表中的行顺序可以更改,并且取决于实现。例如,重组可能会改变它。例如,在PostgreSQL中,一个简单的更新会改变顺序,甚至不能保证在两次连续扫描中获得相同的顺序。

谢谢你的回答,但我不想要序列号。减少我想要的是按组中的名字对每个组(即,它们有相同的序列号)进行排序。样本数据太差了。添加(3,'D'),(3,'A')和(4,'C'),并相应地调整预期结果。很抱歉,我不确定如何在@ashutshrawat实现此目的。我将删除我的答案。@ashutshrawat此查询中没有聚合函数,因此我认为不能使用Group by来实现此目的。它将给出Aa A A B C D Z作为回答谢谢,@laurenz但我希望它们在一个组中被提及的顺序(相同序列号)保持不变,只是整个组根据名字进行排序,所以我认为描述是正确的。在你的解决方案中,它正在改变组内的顺序,如果我在序列号3中给出了D,A,C,那么它应该始终保持D,A,C。我已经编辑了我的描述,希望它有帮助,并为所有的困惑感到抱歉,这是我第一次在这里为什么,有其他解决方案吗?谢谢,但我找到了一个替代解决方案。我正在进行分组和排序,然后将它们存储到另一个表中,并在该表的帮助下获得所需的结果。但是,无法保证您将按照在数据库中输入行的顺序获得这些行。如果这足够好的话,很好。我实际上使用的是基于python的dbms,但我已经在MySQL中测试过了
select Serialno,Name
from table _name
order by Name desc