请教大神 SQL 排序问题。难倒我了

2017-10-20 08:40:01 +08:00
 nestlake
请教大神
有一个数据表
city company
合肥 a
上海 b
武汉 c
合肥 d
杭州 e
合肥 f
武汉 g

现在想实现如下排序,怎么弄? group by 好像不行
合肥 a
合肥 d
合肥 f
武汉 c
武汉 g
杭州 e
上海 b

请教大神,SQL 该怎么写??谢谢😘😚😗😙
4926 次点击
所在节点    问与答
50 条回复
tomwen
2017-10-20 08:42:58 +08:00
select city, company from table order by city,company;
tigiyj
2017-10-20 08:44:32 +08:00
select * from table order by city asc,company asc
nestlake
2017-10-20 08:47:03 +08:00
@tomwen 不对,city 出现的次数从多到少排序
nestlake
2017-10-20 08:47:24 +08:00
@tigiyj city 次数未参与排序
nestlake
2017-10-20 08:47:36 +08:00
继续坐等大神解答,感谢
nestlake
2017-10-20 08:48:00 +08:00
目前,oschina 尚无人能解
shakoon
2017-10-20 08:48:01 +08:00
第一列根本不知道是什么顺序
nestlake
2017-10-20 08:49:50 +08:00
@shakoon 相同出现次数
nestlake
2017-10-20 08:50:17 +08:00
合肥 3 次,武汉 2 次。。。
taifus
2017-10-20 08:51:43 +08:00
刚学 sql,话说 2 楼写的是不是对的。
nestlake
2017-10-20 08:52:41 +08:00
坐等感受出现啊
nestlake
2017-10-20 08:52:53 +08:00
万能的 v2
nestlake
2017-10-20 08:53:02 +08:00
@nestlake 高手
Jackliu91
2017-10-20 08:54:02 +08:00
@nestlake 既然要用到次数 先 group by 然后 jion 再 order by 可以。
tigiyj
2017-10-20 08:57:52 +08:00
SELECT
p1.city,
p1.company
FROM
table1 AS p1
LEFT JOIN (
SELECT
city,
count(city) AS num
FROM
table1
GROUP BY
city
) AS p2 ON p1.city = p2.city
ORDER BY
p2.num DESC,
p1.company ASC
写的比较糙
x7395759
2017-10-20 09:00:01 +08:00
说实话,你见过 SQL 语句根据数量排序么?
nestlake
2017-10-20 09:04:00 +08:00
@tigiyj 高手终于出现了,感谢感谢😘😚😗😙
nestlake
2017-10-20 09:04:10 +08:00
@x7395759 看你的楼上
x7395759
2017-10-20 09:09:07 +08:00
@nestlake 这种 sql 的效率,无话可说,当然如果单纯要用 sql 实现,也行吧。
nestlake
2017-10-20 09:12:57 +08:00
@x7395759 高手有无其他更好的解决方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/399120

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX