mysql - 如何根据MYSQL中ID的增加次数的顺序获得不同的ID
问题描述
如何根据出现次数增加的顺序从一组id中获取不同的id。
For Example , input: 3,1,1,2,2,2
这里 id 2 出现 3 次, id 1 出现 2 次, id 3 出现 1 次。
here is my output 2,1,3
如何使用 mysql 通过单个查询获取这些
解决方案
假设我们有 2 个表:
1)学生:字段如下:
a)id:INTEGER AUTO INCREMENT PRIMARY KEY
b)名称:VARCHAR
示例数据:
student
id | name
----------
1 | A
2 | B
3 | C
2)marks:字段如下:
a)id:INTEGER AUTO INCREMENT PRIMARY KEY
b)sid:INTEGER FOREIGN KEY(指学生表中的id字段)
c)subject:VARCHAR
d)marks:INTEGER 样本数据:
marks:
id | sid | subject | marks
--------------------------
1 | 1 | s1 | 40
2 | 2 | s2 | 50
3 | 2 | s1 | 60
4 | 2 | s2 | 70
5 | 3 | s1 | 80
使用下面的查询来获取不同的学生 ID,并按降序排列引用记录:
SELECT `student`.`id`, COUNT(*) AS `total` FROM `student` INNER JOIN `marks` ON (`student`.`id` = `marks`.`sid`) WHERE 1 GROUP BY `student`.`id` ORDER BY `total` DESC
推荐阅读
- amazon-web-services - 具有持续超过一小时的凭证的 AWS 承担角色
- bluetooth-lowenergy - BLE:适配器使用 HCI ACL 协议而不是 LE LL 发送数据
- python-3.x - Python3 pip install vtk: OpenGL2 错误
- android - 添加多个卡片视图
- r - 通过`list.files()`中的正则表达式获取文件夹?
- nodemcu - 需要帮助将节点 mcu 连接到 neo 6m gps 模块
- javascript - javascript中的承诺顺序
- python - Django 上的用户追随者模型。不能在指定中间模型的 ManyToManyField 上使用 add()。改用accounts.Contact的经理
- ios - 在 RxSwift 的 for 循环中调用多个 API 请求的最佳方式
- javascript - 我将如何在这个网站上为导航创建悬停动画?