【发布时间】:2021-09-20 23:59:29
【问题描述】:
假设我们有一个 Sqlite 表,其中包含:
name;city;age;id;foo
Alice;New-York;25;13782749;12
Eve;Chicago;23;1938679;34
Bob;New-York;25;824697624;56
Jack;Denver;30;239679163;12
Simone;Denver;30;1687631;99
如何按h=CONCAT(city,age) 分组同时在组中添加与组中某人具有相同foo 列的用户?
如Group items by 2 columns 中所见,这里是如何按h 分组:
select dense_rank() over (order by city, age) as grpnum, name, id from t;
如何在foo 上添加第二个条件?
示例:这里 Alice 和 Bob 在同一个 group1 中,因为他们有相同的 h=CONCAT(city,age),但是 Jack 也应该在 group1 中,因为他与 Alice 具有相同的 foo 值:@ 987654331@。 Simone 的CONCAT(city,age) 与 Jack 相同,因此她与 Jack 属于同一组,在 group1 中也是如此。
【问题讨论】:
-
如果有另一个来自丹佛的 30 岁的人,他们会在自己的小组中吗?还是和杰克一起?
-
@GordonLinoff 与杰克和其他人在一起。如果
foo相似,则将它们组合在一起。 -
@GordonLinoff 我在另一个用户 Simone 的问题中添加了一个示例。
标签: sql sqlite group-by sql-order-by