作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 SQL 提取以下信息。表格结构如下:
person_id、role_id、计数
例如表:
p1, r1, 5
p1, r2, 3
p2, r1, 8
p1, r3, 7
p2, r2, 3
p3, r1, 10
p3, r2, 15
我想编写查询来为每个 people_id 提取具有最大计数的 role_id 。我怎样才能在MYSql或oracle DB中做到这一点
对于上表,输出应如下所示
p1, r3, 7
p2, r2, 8
p3, r2, 15
上述输出的解释:
p1 has the maximum count as r3 i.e. 7
p2 has maximum count as r2 i.e. 8
p3 has maximum count as r2 i.e.15
我无法找出提取此数据的 SQL。有人可以帮我弄这个吗?
最佳答案
忽略名为 count 的列名(最好使用在任何 SQL 风格中都不太可能是保留字的名称):-
SELECT a.person_id, a.role_id, a.count
FROM table a
INNER JOIN
(
SELECT person_id, MAX(count) AS MaxCount
FROM table
GROUP BY person_id
) Sub1
ON a.person_id = Sub1.person_id AND a.count = Sub1.MaxCount
关于mysql - 查找每个 people_id 对应的具有最大计数的 role_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17295314/
我正在尝试使用 SQL 提取以下信息。表格结构如下: person_id、role_id、计数 例如表: p1, r1, 5 p1, r2, 3 p2, r1, 8 p1, r3, 7 p2, r2,
我是一名优秀的程序员,十分优秀!