代码之家  ›  专栏  ›  技术社区  ›  Jefferson

SQL查询在计数中包含最新日期

  •  0
  • Jefferson  · 技术社区  · 2 年前

    我有这个示例,其中我正在计算记录的数量,并将它们显示为 CustomerIDCount 。我还想包括 LatestDate 但我不确定是否需要另一个查询,或者是否可以将其添加到此查询?

    SQLFiddle

    安装程序

    CREATE TABLE log
    (
        [CustomerID] [int] NULL, 
        [LogDate] [datetime] NULL
    );
        
    INSERT INTO log ([CustomerID], [LogDate])
    VALUES
        (1, 2021-02-12),
        (2, 2021-02-12),
        (1, 2021-02-12),
        (3, 2021-03-12),
        (4, 2021-02-12)
    ;
    

    我的尝试:

    SELECT
        CustomerID, COUNT(*) CustomerIDCount
    FROM
        (SELECT  CustomerID
         FROM log) g
    GROUP BY
        CustomerID
    ORDER BY 
        CustomerIDCount
    

    结果:

    客户编号 客户帐户
    2. 1.
    3. 1.
    4. 1.
    1. 2.

    但我期望的结果是:

    客户编号 客户帐户 最晚日期
    2. 1. 2021 02月12日
    3. 1. 2021 03月12日
    4. 1. 2021-02-12
    1. 2. 2021 03月12日
    0 回复  |  直到 2 年前
        1
  •  1
  •   FlexYourData    2 年前

    您不需要使用子查询,只需将Max(LogDate)添加到查询中即可。

    select CustomerID, count(*) CustomerIDCount, max(LogDate) as max_LogDate
    from log
    group by CustomerID
    order by CustomerIDCount
    
        2
  •  1
  •   DanielG    2 年前

    很难从这些有限的信息中分辨出来,我假设您有一个基于客户ID的分组,并有一个计数。您能否将MAX(LatestDate)添加到该查询中?

        3
  •  1
  •   gvee    2 年前
    SELECT CustomerID
         , Count(*) AS CustomerIDCount
         , Max(LogDate) AS LastestDate
    FROM   log
    GROUP
        BY CustomerID
    ;