如何在SQL中找到具有多个最大值的组的最大值?

维克拉姆

该表必须按部门分组,并且必须返回部门的最大数量

表A:

ID 姓名
1个 约翰·亚伯拉罕 人力资源
2 迈克尔·克拉克 人力资源
3 罗伊·托马斯(Roy Thomas) 经理
4 汤姆·何塞 人力资源
4 杰里·平托 经理

表B:

数量
1个 5000
2 5000
3 2500
4 1000
4 1500

预期答案

ID 姓名 数量
1个 约翰·亚伯拉罕 人力资源 5000
2 迈克尔·克拉克 人力资源 5000
3 罗伊·托马斯(Roy Thomas) 经理 2500
泽德福克斯

您可以尝试如下操作:

select main.*

FROM

-- get all information from t1 and amount from t2
(
  select t1.*, t2.amount from t1 inner join t2 on t1.id = m_id
) main

INNER JOIN

-- get max amount by department
(
  select department, max(amount) max_amount from t1 inner join t2 on t1.id = m_id
  group by department
) summary

-- match with main by department and the max amount
on main.department = summary.department
and main.amount = summary.max_amount;

结果

+------+----------------+------------+--------+
| id   | name           | department | amount |
+------+----------------+------------+--------+
|    1 | John Abraham   | HR         |   5000 |
|    2 | Michael Clarke | HR         |   5000 |
|    3 | Roy Thomas     | Manager    |   2500 |
+------+----------------+------------+--------+

示例在这里:https : //dbfiddle.uk/?rdbms=mysql_5.7&fiddle=a4cdd94b415df204b0fd967263ba9dc8

解释

由于您要按部门获取最大金额,因此我们为此创建了一个子查询。我们给它起了一个别名summary这给了我们这个:

select department, max(amount)
from t1 inner join t2 on t1.id = m_id group by department;
+------------+-------------+
| department | max(amount) |
+------------+-------------+
| HR         |        5000 |
| Manager    |        2500 |
+------------+-------------+

我们通过合并t1和t2表来合并您要报告的数据,并为其命名main这给了我们这个:

select t1.*, t2.amount from t1 inner join t2 on t1.id = m_id;
+------+----------------+------------+--------+
| id   | name           | department | amount |
+------+----------------+------------+--------+
|    1 | John Abraham   | HR         |   5000 | <-- want this
|    2 | Michael Clarke | HR         |   5000 | <-- want this
|    3 | Roy Thomas     | Manager    |   2500 | <-- want this
|    4 | Jerry Pinto    | Manager    |   1000 |
|    4 | Tom Jose       | HR         |   1000 |
+------+----------------+------------+--------+

然后,我们根据部门和两个子查询中的金额确保两个子查询都已加入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在具有多个最大值的矩阵中找到每行的最大频率

来自分类Dev

如何从列中找到最大值

来自分类Dev

如何从字典中找到最大值?

来自分类Dev

如何从结构中找到最大值?

来自分类Dev

如何在图像中找到局部最大值

来自分类Dev

如何在Swift对象数组中找到最大值?

来自分类Dev

如何在RDD对中找到最大值?

来自分类Dev

如何在Sympy中找到函数的最大值?

来自分类Dev

如何在numpy数组列中找到最大值?

来自分类Dev

如何在Swift字典中找到最大值?

来自分类Dev

如何在numpy数组列中找到最大值?

来自分类Dev

如何在字符串中找到最大值?

来自分类Dev

如何在Hash R中找到最大值的键?

来自分类Dev

如何在.txt文件中找到最大值?

来自分类Dev

如何在数组中找到最大值

来自分类Dev

如何在多维数组中找到最大值

来自分类Dev

如何在numpy数组中找到对应的最大值

来自分类Dev

使用count(*)完成计算后,如何在每个组中找到最大值?

来自分类Dev

使用count(*)完成计算后,如何在每个组中找到最大值?

来自分类Dev

如何在列表中找到所有局部最大值和最小值

来自分类Dev

如何在MATLAB中找到多个数组的最大值?

来自分类Dev

如何在存储在数据框中的多个列表中找到最大值?

来自分类Dev

MongooseJS-如何找到具有最大值的元素?

来自分类Dev

推力CUDA在每个组(段)中找到最大值

来自分类Dev

如何在 SQL 中找到最大值并使用 PDO 读入 PHP?

来自分类Dev

如何在JavaScript中找到数组最大值的所有索引?

来自分类Dev

如何编写SQL来选择具有每个组的最大值(值)的行?

来自分类Dev

在同一单元格中找到最大值的excel公式具有最右边数字的多个值

来自分类Dev

如何找到最大值?

Related 相关文章

  1. 1

    在具有多个最大值的矩阵中找到每行的最大频率

  2. 2

    如何从列中找到最大值

  3. 3

    如何从字典中找到最大值?

  4. 4

    如何从结构中找到最大值?

  5. 5

    如何在图像中找到局部最大值

  6. 6

    如何在Swift对象数组中找到最大值?

  7. 7

    如何在RDD对中找到最大值?

  8. 8

    如何在Sympy中找到函数的最大值?

  9. 9

    如何在numpy数组列中找到最大值?

  10. 10

    如何在Swift字典中找到最大值?

  11. 11

    如何在numpy数组列中找到最大值?

  12. 12

    如何在字符串中找到最大值?

  13. 13

    如何在Hash R中找到最大值的键?

  14. 14

    如何在.txt文件中找到最大值?

  15. 15

    如何在数组中找到最大值

  16. 16

    如何在多维数组中找到最大值

  17. 17

    如何在numpy数组中找到对应的最大值

  18. 18

    使用count(*)完成计算后,如何在每个组中找到最大值?

  19. 19

    使用count(*)完成计算后,如何在每个组中找到最大值?

  20. 20

    如何在列表中找到所有局部最大值和最小值

  21. 21

    如何在MATLAB中找到多个数组的最大值?

  22. 22

    如何在存储在数据框中的多个列表中找到最大值?

  23. 23

    MongooseJS-如何找到具有最大值的元素?

  24. 24

    推力CUDA在每个组(段)中找到最大值

  25. 25

    如何在 SQL 中找到最大值并使用 PDO 读入 PHP?

  26. 26

    如何在JavaScript中找到数组最大值的所有索引?

  27. 27

    如何编写SQL来选择具有每个组的最大值(值)的行?

  28. 28

    在同一单元格中找到最大值的excel公式具有最右边数字的多个值

  29. 29

    如何找到最大值?

热门标签

归档