Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 按一列排序和分组_Mysql - Fatal编程技术网

Mysql 按一列排序和分组

Mysql 按一列排序和分组,mysql,Mysql,我想在子代中按日期时间字段订购此数据,电话号码按分组 datetime |telephone|user | -------------------|---------|-------------------| 2019-11-15 20:41:43| 123|proident, sunt in | 2019-10-08 09:49:33| 456|a deserunt mollit | 2019-08-13 12:38:16

我想在子代中按日期时间字段订购此数据,电话号码按分组

datetime           |telephone|user               |
-------------------|---------|-------------------|
2019-11-15 20:41:43|      123|proident, sunt in  |
2019-10-08 09:49:33|      456|a deserunt mollit  |
2019-08-13 12:38:16|   123334|d tempor incididun |
2019-07-24 21:44:15|123456789|sectetur adipisci  |
2019-06-14 15:03:32|123456789|it, sed do eiusmod |
2019-05-20 07:09:01|   234234|aliqua. Ut enim    |
2019-05-10 23:22:32| 90812345|Lorem ipsum dolor  |
2019-03-25 17:27:37|   123334|fficia deserunt mo |
2019-02-25 22:32:19|      123| labore et dolore  |
2019-02-18 16:01:05|123456789|lit, sed do eiusmo |
我已经试过了,但还不够

SELECT * FROM(select * from test order by test.`datetime` desc LIMIT 
18446744073709551615) as sub;
例如,我想让电话123在第一个位置重复两次,其日期时间字段按子代顺序排列

datetime           |telephone|user               |
-------------------|---------|-------------------|
2019-11-15 20:41:43|      123|proident, sunt in  |
2019-02-25 22:32:19|      123| labore et dolore  |
2019-10-08 09:49:33|      456|a deserunt mollit  |
2019-08-13 12:38:16|   123334|d tempor incididun |
2019-07-24 21:44:15|123456789|sectetur adipisci  |
2019-06-14 15:03:32|123456789|it, sed do eiusmod |
2019-02-18 16:01:05|123456789|lit, sed do eiusmo |
2019-05-20 07:09:01|   234234|aliqua. Ut enim    |
2019-05-10 23:22:32| 90812345|Lorem ipsum dolor  |
2019-03-25 17:27:37|   123334|fficia deserunt mo |

您可以通过将表自连接到包含每个电话值的datetime最大值的表,然后根据这些最大值进行排序,然后是该行的实际datetime值来实现此结果:

SELECT t1.* 
FROM test t1
JOIN (SELECT telephone, MAX(datetime) AS datetime
      FROM test
      GROUP BY telephone) t2 ON t2.telephone = t1.telephone
ORDER BY t2.datetime DESC, t1.datetime DESC
输出:

datetime            telephone   user
2019-11-15 20:41:43 123         proident, sunt in
2019-02-25 22:32:19 123         labore et dolore
2019-10-08 09:49:33 456         a deserunt mollit
2019-08-13 12:38:16 123334      d tempor incididun
2019-03-25 17:27:37 123334      fficia deserunt mo
2019-07-24 21:44:15 123456789   sectetur adipisci
2019-06-14 15:03:32 123456789   it, sed do eiusmod
2019-02-18 16:01:05 123456789   lit, sed do eiusmo
2019-05-20 07:09:01 234234      aliqua. Ut enim
2019-05-10 23:22:32 90812345    Lorem ipsum dolor

限制18446744073709551615在这一点上,我想你可以删除LIMIT@kamboj别担心。我很高兴能帮上忙。