【问题标题】:Group items by 2 columns按 2 列对项目进行分组
【发布时间】:2021-11-14 14:27:37
【问题描述】:

假设我们有一个 Sqlite 表,其中包含:

name;city;age;id
Alice;New-York;25;13782749
Eve;Chicago;23;1938679
Bob;New-York;25;824697624

如何按h=CONCAT(city,age)分组:

h;name;id
group1;Alice;13782749
group1;Bob;824697624
group2;Eve;1938679

除了group1group2,可以为每个组设置12,甚至是一个哈希f68ac46c3155a0

我能得到的最接近的是:

select (city||age) as h, * from mytable order by h;

但我想要一个组号或哈希值,而不是显示 city||age(在我的实际情况下可能很长)。

【问题讨论】:

    标签: sql sqlite group-by


    【解决方案1】:

    您可以使用dense_rank() 枚举组:

    select dense_rank() over (order by city, age) as grpnum, name, id
    from t;
    

    【讨论】:

    • 很棒的@GordonLinoff,即使使用 Sqlite 也能正常工作!我在最后对问题进行了轻微修改,您对此有什么想法吗?
    • @Basj 。 . .您应该将修改后的问题作为新问题提出。这是完全不同的。
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2018-07-16
    • 2014-10-27
    相关资源
    最近更新 更多