簡體   English   中英

在MySQL中通過代碼獲取帶有min(price)組的行的值

[英]Getting the value of row with min(price) group by code in mysql

我的表結構是這樣的:

country                 | price  | code
---------------------------------------
EGYPT PROPER  WHOLESALE | 0.037  | 20
EGYPT FIXED             | 0.0710 | 20
EGYPT-OTHER             | .0497  | 20

我必須使用GROUP BY代碼,並且我希望輸出為:

country                 | price  | code
---------------------------------------
EGYPT PROPER  WHOLESALE | 0.037  | 20

具有最低價格。

我的查詢是:

select MIN(inp.price) as Price, inp.code, inp.country
from tbl_input_values as inp 
GROUP BY code

但我得到的輸出為:

country         | price | code
------------------------------
EGYPT-OTHER     | .037  | 20

這里,

SELECT  *
FROM    tbl_input_values
WHERE   price = (SELECT MIN(PRICE) FROM tbl_input_values)

對於每個代碼,這將顯示具有最低價格的行:

SELECT yourtable.*
FROM yourtable
WHERE (code, price) IN (select code, min(price)
                        from yourtable
                        group by code)

帶有多個代碼:

SELECT tb1.* 
FROM tbl_input_values tb1
INNER JOIN (select code, min(price) minPrice
            FROM tbl_input_values
            GROUP BY code) as a
   ON a.code = tb1.code and a.minPrice =tb1.price

我認為最簡單的方法是:

select t.*
from t
order by price
limit 1

您根本不需要聚合。

暫無
暫無

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

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