选择不同的列并按列的子集进行分组

2024-03-04

我正在使用 SQL Server 2008,我陷入了这个恶性循环DISTINCT and GROUP BY

我有以下虚拟表myTable:

ID   Street         City          PostalCode   ProjectID   Date        NameId
1    Bar Street     Sunny Beach   666          7           25/08/2013  111
2    Sin Street     Ibiza         999          5           12/06/2013  222 
3    Bar Street     Sunny Beach   666          7           07/08/2013  333
4    Bora Bora      Bora Bora     1000         10          17/07/2013  444
5    Sin Street     Ibiza         999          5           04/07/2013  555

我想获取具有不同地址(街道、城市、邮政编码)和项目 ID 的所有记录(可能是第一次出现)。 例如这里的结果应该是:

ID   Street         City          PostalCode   ProjectID   Date        NameId
1    Bar Street     Sunny Beach   666          7           25/08/2013  111
2    Sin Street     Ibiza         999          5           12/06/2013  222 
4    Bora Bora      Bora Bora     1000         10          17/07/2013  444

我尝试过DISTINCT在所有列上,但这行不通,因为ID是唯一的并且始终返回所有列。也尝试过Group by Street, City PostalCode ProjectID,但是发生了一个错误Date and NameId.

Column '' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

那么,如何获得列子集不同的结果呢?


您想使用row_number()功能:

select t.ID, t.Street, t.City, t.PostalCode, t.ProjectID, t.Date, t.NameId
from (select t.*,
             row_number() over (partition by Street, City, PostalCode, ProjectId
                                order by id
                               ) as seqnum
      from t
     ) t
where seqnum = 1;

这是一个窗口函数,它将连续值分配给某些列中具有相同值的行(由partition by条款)。这些行中的顺序由order by条款。在这种情况下,它从最低的开始排序id在组中,因此外部查询只选择第一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择不同的列并按列的子集进行分组 的相关文章

随机推荐

  • 我如何检查我的 sqlite 表中是否有数据?

    编辑 根据下面的答案稍微更改了代码 但仍然无法正常工作 我还添加了一条日志消息来告诉我 getCount 是否返回 gt 0 确实如此 所以我怀疑我的查询可能有问题 或者我对光标的使用 我创建了一个表 我想检查它是否为空 如果它为空 我想运
  • MongoDB:使用 $ 位置运算符进行查询

    我有一个集合 其中的条目如下所示 userid 1 contents tag whatever value 100 tag whatever2 value 110 我希望能够查询该集合并仅返回数组的一部分 与查询匹配的部分 我正在尝试使用
  • 在 WooCommerce 中最后显示缺货产品 - 不包括延期交货

    请注意我的要求与其他类似问题的区别 此代码片段可将缺货商品保留在底部 在 Woocommerce 中最后显示缺货产品 https stackoverflow com questions 25113581 show out of stock
  • 当我将其设置为详细信息时,如何将图像添加到ListView?

    当我将其设置为详细信息时 如何将图像添加到 ListView 例如 ImageList imgList new ImageList imgList Images AddStrip bitmap this listView1 StateIma
  • 使用 OpenCv 检测 PC 上网络摄像头/摄像头的数量

    我正在制作一个运行多个网络摄像头 摄像机的应用程序 我无法检测到 OpenCV 拥有的网络摄像头数量 无法安排一个包含多个子网络摄像头的大显示窗口 有人可以帮我这个吗 我搜索过 openCV willowgarage 但失败了 thanks
  • Python线程传递参数

    我正在尝试将一些参数传递给服务器 但我不知道如何 这是我的代码 HOST PORT socket gethostbyname socket gethostname 31000 self server SocketServer Threadi
  • 通过html链接删除Django中的对象

    我有一个带有 Post 模型的项目 这是基本的帖子 我想在每个帖子页面上创建一个链接 以便能够删除该帖子 具有适当的安全性 关于堆栈溢出有一些问题 但我似乎找不到一个完整的 可行的答案 我使用的是 Django 1 7 当我实现它时不会抛出
  • 使用参数化类型重载方法

    只是想知道是否有一种方法可以使用参数化类型调用重载方法 例如定义以下对象 object Wrap def f x X println x called def f y Y println y called def f a Any print
  • 列出所有 PaperTrail 版本(包括关联)的最有效方法是什么?

    这个问题是关于宝石的纸迹 https github com airblade paper trail对于轨道 当仅关联发生变化时 不会为主模型创建版本记录 因此 列出某个记录 包括其关联 的所有版本的最有效方法是什么 查询应该类似于以下内容
  • 是否有 ruby​​ 一行“return if x”?

    有很多地方需要补充 if this flag return end 可以用 ruby 一行完成吗 有没有红宝石单线 return if x Yes return value if condition 我爱鲁比
  • 无法包含用于客户端幻灯片验证的 js 文件

    我安装了gem client side validations 运行bundle并运行rails g client side validations install 安装没有创建任何 js 文件 因此我创建了它们并将 HitHub 中的代码
  • 为什么 Android FireMonkey 应用程序中的控件不能跨越多列或多行?

    我有一个带有 GridPanelLayout 的 FireMonkey 应用程序 与客户端对齐 它有 6 列和 16 行 控件包括字形 编辑和按钮 TEdit 跨越多列 TButton 跨越多列和行 目前 控件全部与客户端对齐 当我在 Wi
  • 如何使用MAIL_FROM_ADDRESS?

    目前 我正在开发一项功能 要求应用程序向客户 用户发送电子邮件 发送电子邮件已经可以正常工作 但是 我希望隐藏 替换发件人的电子邮件 我以为MAIL FROM ADDRESS in env文件是我所需要的 但它没有给我我所期望的 这是我的
  • Uploadify 插件不调用 Java Servlet

    我刚刚开始使用 Uploadify flash 插件而不是标准 HTML UI 并遇到了下一个问题 当我单击 上传文件 链接时 会显示进度并出现 已完成 状态 但实际上 它没有发生任何事情 Java Servlet 不是从后端调用的 有上传
  • 将 UIButton 的背景颜色从白色动画变为红色

    我正在尝试制作一种颜色脉冲效果来动画背景颜色UIButton使其连续从一种颜色 白色 变为另一种颜色 红色 我正在尝试使用CABasicAnimation用于更改不透明度 但我也无法使其与颜色一起使用 CABasicAnimation th
  • 安全发送 PHP 从 iOS 获取信息

    情况是这样的 我有一个 iOS 应用程序 其中有一部分用户将信息输入到特定标签中 然后我根据用户给定的信息创建一个 URL 请求 并将其发送到我的 PHP 后端 URL 遵循以下结构 http www somewebsite com sen
  • Bazel 和 Gradle 有什么区别?

    谷歌刚刚开源的 https github com bazelbuild bazel它的构建工具Bazel https bazel build 这个工具和之前有什么区别Gradle https gradle org 它能做什么 Gradle
  • Open Shift Angular 8 应用程序内存不足问题

    我正在为 openshift Angular 8 应用程序使用 Modern Web App 映像 但应用程序因 npm build 内存不足问题而失败 错误日志 usr libexec s2i assemble 第 62 行 296 被杀
  • Subversion 分支重新整合

    当分支重新集成到主干时 该分支实际上已经死亡了吗 您可以在重新集成后对分支进行修改并稍后将其合并回主干吗 你可以从技术上做到这一点 你的分支没有死亡也没有禁用 但不建议在重新集成后从分支合并到主干 您可以在这里找到有关其原因的完整讨论 Su
  • 选择不同的列并按列的子集进行分组

    我正在使用 SQL Server 2008 我陷入了这个恶性循环DISTINCT and GROUP BY 我有以下虚拟表myTable ID Street City PostalCode ProjectID Date NameId 1 B