簡體   English   中英

選擇兩列的最大值並獲取每一行的ID

[英]Select max value for two columns and get id of each row

我有一個稱為產品的表,該表具有id, name, price and quantity

該表具有如下數據。

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

我想獲取具有產品idpricequantitymax()

像下面這樣。 我不知道有沒有可能

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

id1是具有max price的產品的id ,而id2是具有max quantity的產品的id

我認為這是不可能的,但想確保。

您可以使用以下查詢來獲得所需的結果,例如

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);

您也可以使用簡單的聯接嘗試此操作,而無需使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM