【问题标题】:How to group by year with the year showing only once如何按年份分组,年份只显示一次
【发布时间】:2018-12-22 13:50:49
【问题描述】:

我尝试过使用以下查询

select distinct Year (SaleDate) AS SaleYear,Max(SalePrice)
from Sale
group by SaleDate

2010 年和 2014 年显示了两次,尽管我使用了 distinct 和 group by。 Maxprice 中的金额也不同。我在这里做错了吗?

【问题讨论】:

  • 有时图片在帖子中很有用,但要确保没有它们,帖子仍然清晰。如果您发布代码或错误消息的图像,请复制并粘贴或直接在帖子中键入实际代码或消息。更多insights here。使用此工具生成ASCII tables。希望这会有所帮助。
  • 这听起来可能很迂腐,但你并没有得到真正的重复。该查询正在返回您所要求的内容。您将记录放入共享相同SalesMan 名称和相同YEAR(S.SaleDate) 的组中。您会得到多个结果,因为多个销售人员在给定年份都有销售。如果您每年只想要一个结果,则必须添加代码以根据销售额、计数或其他一些标准选择单个记录。

标签: sql group-by distinct


【解决方案1】:

你需要在group by中重复year()

select Year(SaleDate) AS SaleYear, Max(SalePrice)
from Sale
group by year(SaleDate);

SELECT DISTINCTGROUP BY 几乎永远不会正确。您的查询所做的只是由SaleDate 聚合并在结果集中提取年份。这就是你看到重复的原因。

【讨论】:

  • 我在尝试进行另一次选择后编辑了我的原始帖子。希望您能对此有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多