MySQL按多列排序,同时按一列分组

标签 mysql sql sql-order-by

所以我有一个奇怪的场景,我希望以某种方式对以下数据进行排序。设表格数据为:

abc 111 2     priority
abc 111 blah  data
abc 222 1     priority
abc 222 blah  data
abc 333 3     priority
abc 333 blah  data

我想根据第 3 列(第 4 列优先)对数据进行排序,但将返回顺序按第 2 列分组。因此预期的查询结果如下所示:

abc 222 1     priority
abc 222 blah  data
abc 111 2     priority
abc 111 blah  data
abc 333 3     priority
abc 333 blah  data

执行此操作的最佳方法是什么。我可以考虑预先进行查询和 in 子句,但这样我就必须考虑所有可能的优先级。

提前致谢。仅供引用,我正在使用它的 MySQL。

最佳答案

我想这就是你需要的:

http://sqlfiddle.com/#!2/48057/14

DDL

CREATE TABLE my_data( 
  name VARCHAR(20),
  num NUMERIC(5), 
  c NUMERIC(3),
  priority NUMERIC(3)
);

DML

INSERT INTO my_data VALUES("abc", 111, 2, 1);
INSERT INTO my_data VALUES("abc", 222, 3, 4);
INSERT INTO my_data VALUES("abc", 222, 1, 9);
INSERT INTO my_data VALUES("abc", 111, 4, 2);

关于MySQL按多列排序,同时按一列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271667/

相关文章:

c# - Orderby() 没有正确排序数字 c#

sql - 按总和最高的组对表进行排序并显示单个条目

MySQL Group by 查询特定条件

mysql - 在 MySQL 中获取最后插入的 ID 表单存储过程

c# - 在服务器上均匀上传文件

php - 如何在php查询中停止第二次显示相同的数据?

sql - 总是运行带有 failOnError ="false"的 Liquibase changeSet?

php - 在 localhost 上为 php/mysql 项目模拟网站

sql 如何转换选择查询

sql - 所有 Spark SQL 数据类型的 Scala 类型映射是什么