[英]SQL select issue : get max value for each day
我的SQL選擇有問題,我需要獲取DateDebut
和DateFin
之間的每一天的列( currentcount
)的DateFin
,但是返回的結果顯示了多個值。
我的SQL語句:
DECLARE @dateDebut DATE,
@dateFin DATE,
@SITA_METIER VARCHAR(20),
@DEFSITE VARCHAR(20);
SET @dateDebut = '01/01/2017';
SET @dateFin = '31/12/2018';
SELECT DISTINCT
CONVERT(DATE, attemptdate) AS Date,
MAX(currentcount) AS MAXUSERS
FROM
logintracking
WHERE
attemptdate BETWEEN CONVERT(DATE, @dateDebut) AND CONVERT(DATE, @dateFin)
AND logintracking.clientaddr IN ('10.118.254.21', '10.118.254.156')
GROUP BY
attemptdate, currentcount
結果:
所需結果:每天僅列的最大值 ( currentcount
)
PS: attemptdate
類型為Timestamp
,這就是為什么我需要將其attemptdate
轉換為簡單日期。
我也嘗試使用“具有”功能,但仍然獲得多個值
您已經使用GROUP BY
了, distinct
是沒有意義的,因此可以刪除distinct
。
那么您只需修改CONVERT(Date,attemptdate)
而不是Group by
的attemptdate
,並且只需group by CONVERT(Date,attemptdate)
進行group by CONVERT(Date,attemptdate)
select CONVERT(Date,attemptdate) as Date, max(currentcount) as MAXUSERS
from logintracking
where attemptdate between @dateDebut and @dateFin
and logintracking.clientaddr in ('10.118.254.21', '10.118.254.156')
group by CONVERT(Date,attemptdate)
注意:
您的@dateDebut
和@dateFin
已經是Date
類型。 無需使用CONVERT
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.