gpt4 book ai didi

sql - 如何创建一个标志,根据值是否占计数的大部分来获取列值的值?

转载 作者:行者123 更新时间:2023-11-29 12:26:53 25 4
gpt4 key购买 nike

我有一张看起来像这样的 table ......

id    city        date
1 chicago 5/1
1 chicago 5/2
1 new york 5/1
2 new york 5/3
2 seattle .
3 chicago .
4 seattle .
4 seattle .

我想创建第三列,它采用“城市”的值,其中特定城市占单个 ID 条目数的大部分 (>51%)。因此,例如,id #1 将有 favorite_city = 'chicago'。我什至不知道从哪里开始......

非常感谢您的帮助。谢谢!

最佳答案

WITH
summary As
(
SELECT
your_table.*,
COUNT(*) OVER (PARTITION BY id) AS id_count,
COUNT(*) OVER (PARTITION BY id, city) AS id_city_count
FROM
your_table
)
SELECT
summary.*,
MAX(
CASE WHEN id_city_count * 2 > id_count THEN city ELSE NULL END
)
OVER (PARTITION BY id)
FROM
summary

关于sql - 如何创建一个标志,根据值是否占计数的大部分来获取列值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220189/

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