簡體   English   中英

選擇在列中具有最小值並在另一列中具有特定值的記錄

[英]Select Record with Min value in a column and with specific value in another column

我有一張這樣的表:

username     date       place      time
paolo        1/1/2001   milan      00:10.20
marco        1/1/2001   milan      00:11.40
paolo        1/1/2011   milan      00:12.20
paolo        1/1/2004   milan      00:10.50

我想為用戶名paolo返回具有最低時間值的行:

paolo        1/1/2001   milan      00:10.20

我正在嘗試使用此查詢:

SELECT username,date,place,MIN(time) as record
FROM crono
WHERE username="paolo"
GROUP BY username,date,place

但它沒有給出我想要的結果。

使用order bylimit

SELECT c.*
FROM crono c
WHERE username = 'paolo'
ORDER BY time
LIMIT 1;

使用GROUP BY ,不要在SELECT中包含不是聚合函數的參數且不在GROUP BY ——除非您真的、真的、真的知道自己在做什么。 盡管這不適用於您的查詢,但它是解決方案的常見嘗試。

這可以使用Derived table來計算MIN(time) ,然后從Derived table的結果中SELECT它來完成。

SELECT username, date, place, record
FROM
(SELECT username, MIN(time) AS record
 FROM crono c
 GROUP BY username) recordselect
INNER JOIN crono c on recordselect.username= c.username

暫無
暫無

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

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