簡體   English   中英

SQL選擇問題:每天獲取最大值

[英]SQL select issue : get max value for each day

我的SQL選擇有問題,我需要獲取DateDebutDateFin之間的每一天的列( 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 byattemptdate ,並且只需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.

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