选择两列的最大值并获取每行的ID

时间:2014-06-10 11:23:54

标签: mysql sql database max

我有一个名为products的表,其中包含列id, name, price and quantity

该表格的数据如下。

id | name | price | quantity
1  |  A   |  20   |   4
2  |  B   |  32   |   3
3  |  C   |  24   |   8

我想获得max() pricequantity id的产品。

如下所示。我不知道它是否可能

id1 | max(price) | id2 | max(quantity)
2   |    32      |  3  |     8

id1id产品的max price id2idmax quantity产品的{{1}}。

我认为这是不可能的,但我想确定。

2 个答案:

答案 0 :(得分:3)

您可以使用以下查询获得所需的结果

id1 | max(price) | id2 | max(quantity)
2   |    32      |  3  |     8

这里quan是表名。

select
  q1.id          id1,
  q1.price,
  q2.id          id2,
  q2.quantity
from quan q1,
  quan q2
where q1.price = (select max(price) from quan)
and q2.quantity = (select max(quantity) from quan);

答案 1 :(得分:-1)

您也可以使用简单连接尝试此操作,而不使用having子句。但不是最佳做法。我建议你使用多个查询。

SELECT T1.ID ID1, T1.PRICE , T2.ID ID2, T2.QUANTITY FROM PRODUCTS T1 , PRODUCTS T2
WHERE T1.PRICE = ( SELECT MAX(PRICE) FROM  PRODUCTS)
AND T2.QUANTITY = (SELECT MAX(QUANTITY) FROM PRODUCTS)