我有一个名为products的表,其中包含列id, name, price and quantity
该表格的数据如下。
id | name | price | quantity
1 | A | 20 | 4
2 | B | 32 | 3
3 | C | 24 | 8
我想获得max()
price
和quantity
id
的产品。
如下所示。我不知道它是否可能
id1 | max(price) | id2 | max(quantity)
2 | 32 | 3 | 8
id1
是id
产品的max price
id2
而id
是max quantity
产品的{{1}}。
我认为这是不可能的,但我想确定。
答案 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)