2014-10-19 53 views
0

我現在的MySQL查詢是MySQL查詢與價值有限,但它必須是最大的整體價值

SELECT max(login_time) FROM login_time_table WHERE login_time >='2014-10-12' AND login_time <= '2014-10-14' group by user_id" 

它提供了所有數據最高,在該組,限定日期提供有,但 我需要的login_time絕與條件中提供的日期一致,並且它必須在整個表中最大並且不僅在該查詢中提供的範圍內。

如: - 讓我的數據是 enter image description here

我想ID 362361作爲我的答案,但 它提供了362361和361

預先感謝您。

+0

您能否提供一些樣本數據集和預期結果集 – 2014-10-19 06:00:17

+0

爲什麼不記錄360?該摘錄中有三個用戶ID,您希望每個用戶的最大權限是? – miken32 2014-10-19 06:15:35

+0

因爲它的最大登錄日期是在363 @ miken32 – 2014-10-19 06:19:04

回答

1

這是如何工作的?

SELECT user_id, login_time 
FROM login_time_table 
GROUP BY user_id 
HAVING MAX(login_time) >='2014-10-12' AND MAX(login_time) <= '2014-10-14'; 
+0

謝謝你的工作完美 – 2014-10-19 06:53:37

1

我想我明白你在問什麼。你想使用HAVING而不是WHERE。

HAVING用於過濾器組通過後,這樣你就可以選擇最大登錄時間爲每個用戶,然後過濾掉不在該範圍內的:通過使用

SELECT max(login_time) AS max_time FROM login_time_table GROUP BY user_id HAVING max_time >='2014-10-12' AND max_time <= '2014-10-14' group by user_id 

注< ='2014-10-14'它實際上並不包括2014-10-14的登錄時間,因爲午夜之後的任何時間都大於'2014-10-14'。我想你可能想要:

SELECT max(login_time) AS max_time FROM login_time_table GROUP BY user_id HAVING max_time >='2014-10-12' AND max_time < '2014-10-15' group by user_id