解决Sql中DIstinct与Order By共同使用的冲突问题
1.需求场景:
需要把最新更新文章的前五名作者展示出来。
2.解决问题第一步:
1 | select top 5 creator from table order by updateDate desc |
结果:显示五条记录,但是名字是重复的。
3.解决问题第二步:
加Distinct
1 | select distinct top 5 creator from table order by updateDate desc |
结果:报错。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
4.解决问题第四步:
按照错误提示修改代码
1 | select distinct top 5 creator,updatedate from table order by updatedate desc |
结果还是会出现重复的,日了狗了,去百度吧
5.正确答案:
1 | select top 5 creator from brands group by creator order by max (updateDate) desc |
总结:对max()函数有了新的感觉了。并不只是放在select里简单获取一下最大值了,他其实也可以像asp.net webform Gridview下的rowdatabind()的那个感觉一样,随着结果集变动。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)