gpt4 book ai didi

mysql - 汇总不同组的每个 ID 的结果

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

我希望针对每个 domainID(在此示例中仅显示一个)总结我的结果。

想法是为三种actions类型(在一列中)获取 bool 值(T/F),并将它们分别放在一行中编号

但是,这些结果需要针对 URL 列中的每个 domain 进行分组。

现在,我可以使用 CASE WHEN 条件来获取 T/F 值,但是,我不会在一行中得到结果...

要获取域,我认为我可以使用 SUBSTRING

初始表:

+----+----------+----------------+
| ID | Action | URL |
+----+----------+----------------+
| 1 | Click | www.google.com |
+----+----------+----------------+
| 1 | Hover | www.google.com |
+----+----------+----------------+
| 1 | Download | www.reddit.com |
+----+----------+----------------+

期望的输出:

+----+-------+-------+----------+------------+
| ID | Click | Hover | Download | Domain |
+----+-------+-------+----------+------------+
| 1 | T | T | F | google.com |
+----+-------+-------+----------+------------+
| 1 | F | F | T | reddit.com |
+----+-------+-------+----------+------------+

最佳答案

使用条件聚合:

SELECT
id,
MAX(CASE WHEN action = 'Click' THEN 'T' ELSE 'F' END) click,
MAX(CASE WHEN action = 'Hover' THEN 'T' ELSE 'F' END) hover,
MAX(CASE WHEN action = 'Download' THEN 'T' ELSE 'F' END) download,
SUBSTR(url, 5) domain
FROM mytable
GROUP BY id, SUBSTR(url, 5)

要生成域名,您只需从 url 中删除前 4 个字符(因此假设所有 url 都以 'www.' 开头)。

这个 Demo on DB Fiddle 您的示例数据返回:

| id  | click | hover | download | domain     |
| --- | ----- | ----- | -------- | ---------- |
| 1 | T | T | F | google.com |
| 1 | F | F | T | reddit.com |

关于mysql - 汇总不同组的每个 ID 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964780/

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