[英]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 by
和limit
:
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.