gpt4 book ai didi

php - 获取另一行 GROUP BY 行的 SUM

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:05 26 4
gpt4 key购买 nike

我有这张表:

table

此选择针对不同的 var_lines(几乎用作一行数据,或调查的受访者)和 set_codes(不同的调查代码)重复多次。

使用此查询:

SELECT
*, COUNT(*) AS total
FROM
`data`
WHERE
`var_name` = 'GND.NEWS.INT'
AND(
`set_code` = 'BAN11A-GND'
OR `set_code` = 'BAN09A-GND'
OR `set_code` = 'ALG11A-GND'
)
AND `country_id` = '5'
GROUP BY
`data_content`,
`set_code`
ORDER BY
`set_code`,
`data_content`

查询基本上计算特定问题的答案数。然后将他们分组调查(set_code)。

我需要的是 GND.NEWS.INT 的每个分组 data_content 答案也显示具有相同 var_line 的所有相应 GND_WT 的总和。

例如,如果我有这个:

data_id    data_content    var_name    var_line
1 2 GND.NEW.INT 1
2 1.4 GND_WT 1
3 2 GND.NEW.INT 2
4 1.6 GND_WT 2
5 3 GND.NEW.INT 3
6 0.6 GND_WT 3

我会得到这样的东西:

data_id    data_content    var_name      var_line   total   weight
1 2 GND.NEW.INT 1 2 3
5 3 GND.NEW.INT 3 1 0.6

感谢您的帮助。

最佳答案

您的要求不是很清楚,但我认为以下内容可以满足您的需求:

select d1.data_id,
d1.data_content,
d1.var_name,
d1.var_line,
t.total,
w.weight
from data d1
inner join
(
select data_content,
count(data_content) Total
from data
group by data_content
) t
on d1.data_content = t.data_content
inner join
(
select var_line,
sum(case when var_name = 'GND_WT' then data_content end) weight
from data
group by var_line
) w
on d1.var_line = w.var_line
where d1.var_name = 'GND.NEW.INT'

参见 SQL Fiddle with Demo

关于php - 获取另一行 GROUP BY 行的 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066724/

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