【问题标题】:Nesting, grouping Sqlite syntax?嵌套,分组Sqlite语法?
【发布时间】:2025-11-25 18:15:02
【问题描述】:

我一辈子都搞不懂这个 Sqlite 语法。

我们的数据库包含以下记录:

TX, Austin
OH, Columbus
OH, Columbus
TX, Austin
OH, Cleveland
OH, Dayton
OH, Columbus
TX, Dallas
TX, Houston
TX, Austin
(State-field and a city-field.)

我需要这样的输出:

OH: Columbus, Cleveland, Dayton
TX: Dallas, Houston, Austin
(Each state listed once... and all the cities in that state... [edited: each listed once])

SELECT 语句是什么样的?

【问题讨论】:

    标签: sql sqlite select syntax


    【解决方案1】:

    你可以使用group_concat:

    select state, group_concat(city)
    from YourTable
    group by state
    

    回复您的评论,您可以使用distinct

    select state, group_concat(distinct city)
                               ^^^^^^^^
    

    【讨论】:

    • 我什至不知道有一个 group_concat() 函数。那太棒了!它列出了所有的州......然后是城市(但城市会一遍又一遍地重复。)我们需要列出每个州ONCE......然后是列出的每个城市ONCE.
    【解决方案2】:

    对 Andomar 的回答稍作修改似乎可以解决问题,尽管我不确定它是否真的有用:

    select distinct state, group_concat(distinct city)
    from YourTable
    group by state
    

    【讨论】: