【问题标题】:Count distinct group by SQL code?按 SQL 代码计算不同的组?
【发布时间】:2011-06-09 21:41:00
【问题描述】:

假设我只有 2 列数据....

Postcode Sold date
LE14 6QR 01/01/2011

我怎么说...为每个邮政编码显示该地区房屋每次售出的日期。

E.G 如果该邮政编码出现 14 次,它会列出每个日期?

谢谢,

【问题讨论】:

  • 如果您在 (Postcode, Sold_date) 上有一个 UNIQUE 或 PRIMARY KEY 约束——而且您可能应该这样做——那么您的表将不支持“每个 时间 的数据该地区的房屋已售出”。 (已添加重点。)它将支持报告该地区每个一栋或多栋房屋已售出的日期

标签: sql select distinct


【解决方案1】:

从你的描述看来你想列出表格的内容,所以你可以这样做:

select Postcode, [Sold date]
from MyTable

如果你不想重复日期,你可以这样做:

select Postcode, [Sold date]
from MyTable
group by Postcode, [Sold date]

【讨论】:

    【解决方案2】:

    如果你要分组,那么你也应该 COUNT 以确保你的总数加起来。

    SELECT PostCode, [Sold Date], COUNT(PostCode)
    FROM [table]
    GROUP BY PostCode, [Sold Date]
    ORDER BY COUNT(PostCode) DESC
    

    【讨论】:

      【解决方案3】:

      我想这就是你想要的:

      SELECT PostCode, SoldDate
      FROM YourTable
      Group By PostCode
      

      【讨论】:

      • -1 - 您不能按一列分组,也不能将聚合函数应用于另一列。因此,您要么需要按两者进行分组,要么为销售日期添加聚合(即 MAX)。
      猜你喜欢
      • 2014-07-31
      • 1970-01-01
      • 2015-04-22
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      相关资源
      最近更新 更多