gpt4 book ai didi

Sqlite GROUP BY 优先级

转载 作者:行者123 更新时间:2023-12-02 00:08:13 27 4
gpt4 key购买 nike

+----+------------+------+
| id | title | lang |
+----+------------+------+
| 1 | title 1 EN | en |
| 1 | title 1 FR | fr |
| 1 | title 1 ZH | zh |
| 2 | title 2 EN | en |
| 3 | title 3 ZH | zh |
+----+------------+------+

这是我的表格,我想按 id 分组,但有时我需要语言“en”具有优先级,有时我需要语言“zh”作为优先级

SELECT * FROM table GROUP BY id

为我提供了所有 uniqe id 的列表,但将 zh 置于 id 1 的位置,我是否可以添加语言优先级?

我想要的“en”输出:

+----+------------+------+
| id | title | lang |
+----+------------+------+
| 1 | title 1 EN | en |
| 2 | title 2 EN | en |
| 3 | title 3 ZH | zh |
+----+------------+------+

我想要的“fr”输出:

+----+------------+------+
| id | title | lang |
+----+------------+------+
| 1 | title 1 FR | fr |
| 2 | title 2 EN | en |
| 3 | title 3 ZH | zh |
+----+------------+------+

我想要的..不断:)

最佳答案

从 SQLite 3.7.11 开始,您可以使用 MAXMIN 选择返回组中的哪条记录。像 lang = 'en' 这样的 bool 表达式返回 0 或 1:

SELECT *,
MAX(lang = 'en')
FROM MyTable
GROUP BY id

如果您想要多种语言的优先级,您可以使用 CASE expression :

SELECT *,
MAX(CASE lang
WHEN 'en' THEN 2
WHEN 'fr' THEN 1
ELSE 0
END)
FROM MyTable
GROUP BY id

关于Sqlite GROUP BY 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18943934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com