首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
›
MySQL 5.5 Community Server
›
MySQL 5.6 Community Server
›
Percona Configuration Wizard
›
XtraBackup 搭建主从复制
Great Sites on MySQL
›
Percona
›
MySQL Performance Blog
›
Severalnines
推荐管理工具
›
Sequel Pro
›
phpMyAdmin
推荐书目
›
MySQL Cookbook
MySQL 相关项目
›
MariaDB
›
Drizzle
参考文档
›
http://mysql-python.sourceforge.net/MySQLdb.html
广告
V2EX
›
MySQL
sql 语句问题,按某列值的记录个数多少 对记录排序,请点进来看详细描述。~
Ransford
·
BYRans
·
2014-06-20 20:35:56 +08:00
· 4430 次点击
这是一个创建于 3828 天前的主题,其中的信息可能已经有所发展或是发生改变。
表名是:help
id order
1 1
2 1
3 2
4 2
5 2
6 3
我想得到:
id order
3 2
4 2
5 2
1 1
2 1
6 3
就是order值多的那组记录在前 降序
这个sql怎么写啊~~~我用的是mysql
SQL
order
个数
4 条回复
•
2014-06-23 10:34:35 +08:00
1
hjse7en
2014-06-21 00:12:31 +08:00
SELECT
a.id
,
a.ord
FROM order_by_count_test a
LEFT JOIN (SELECT
ord,
count(ord) AS cnt
FROM order_by_count_test
GROUP BY ord) AS b
ON a.ord = b.ord
ORDER BY b.cnt DESC,
a.id
;
不过这种sql效率不怎样。
2
hit9
2014-06-21 11:23:27 +08:00
首先,你不能使用order来作为一个列的名字!(sql保留字)
其实,如果我们使用od来表示order列,那么这个sql可以是(与一楼一样的思路,用左join展开group结果):
select
a.id
, a.od from help as a left join (select id, od, count(id) as c from help group by od) as b on a.od=b.od order by c;
3
ledkk
2014-06-21 21:12:31 +08:00
@
hit9
保留字 用 `order` 包起来就可以啦
4
hit9
2014-06-23 10:34:35 +08:00
@
ledkk
对的!^_^
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
881 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms ·
UTC 20:40
·
PVG 04:40
·
LAX 12:40
·
JFK 15:40
Developed with
CodeLauncher
♥ Do have faith in what you're doing.