gpt4 book ai didi

mysql - 获取MySQL中GROUP BY结果的百分比值

转载 作者:行者123 更新时间:2023-11-29 15:08:24 25 4
gpt4 key购买 nike

我正在处理调查数据。本质上,我想计算某个位置的问题的总响应数,然后使用该总数来创建每个特定响应占所有响应的百分比。然后我想按位置对结果进行分组。

理想的输出类似于:

Q1 | State | City | %

yes| MA | bos |10

no | MA | bos |40

m. | MA | bos |50

yes| MA | cam |20

no | MA | cam |20

m. | MA | cam |80

我遇到的问题(我相信)是 GROUP BY 在我的 count 语句之前工作,所以我无法计算所有响应。下面是我必须生成实数的示例:

SELECT q1, state, city, COUNT(q1) FROM master GROUP BY state, city, q1

并非所有问题都有答案,因此以下是我尝试获取百分比的尝试:

SELECT q1, state, city, count(q1)/(count(nullif(q1,0))) as percent FROM master group by state, city, q1

我相信使用 WITHOVER(PARTITION BY...) 将是一个可能的途径,但我无法让其中任何一个工作。

最佳答案

我认为该查询需要分为两部分。一个用于获取每个州+城市的计数,另一个用于获取每个州+城市+Q1 的计数。然后,您将这两个查询连接在一起并对组合结果进行计算。可能有比这更优雅的解决方案,但沿着这些思路的东西也许可行。对于任何拼写错误,我们深表歉意!

select t1.q1, t1.state, t1.city, ResponseCount, 100.0 * ResponseCount/CityCount as "%"from   (select q1, state, city, count(q1) as ResponseCount    from master    group by state, city, q1) t1 join   (select state, city, count(*) as CityCount    from master    group by state, city) t2 on t2.State = t1.State and t2.City = t1.City

希望这有帮助。

关于mysql - 获取MySQL中GROUP BY结果的百分比值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1467070/

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