gpt4 book ai didi

mysql - 多重连接的 SUM 记录错误

转载 作者:行者123 更新时间:2023-11-29 09:45:39 25 4
gpt4 key购买 nike

我有 3 个表请求计划级别

这是表格请求:

 id  plan_id response_code client_id
1 1 200 1
2 1 200 1
3 1 400 1
4 1 500 1

这是表格计划:

 id       client_id
1 1
2 1
3 1
4 1

这是表价:

     id  plan_id
1 1
2 2
3 3
4 4

我想要连接 3 个表并在表请求中计数,response_code 为 200、400 和 500 的记录有多少。但我得到了错误的值。这是我的查询

        SELECT 
requests.id,
SELECT SUM(case
when requests.response_code = 200 then
1 else 0
end) as resquest200,
SELECT SUM(case
when requests.response_code = 500 then
1 else 0
end) as resquest500,
response_code,
FROM requests
JOIN plan
ON requests.plan_id = plan.id
JOIN price
ON plan.id = price.plan_id
GROUP BY request.id

我尝试过:

 SELECT 
request.id,
(
SELECT SUM(case
when request.response_code = 200 then
1 else 0
end) FROM request) as resquest200,
response_code,
FROM request
JOIN plan
ON requests.plan_id = plan.id
JOIN price
ON plan.id = price.plan_id
GROUP BY request.id

并且它的总和正确。如何优化我的查询?请帮助我

最佳答案

如果您想确定请求总数,那么 COUNT() 是比 SUM() 更好的选择

SELECT COUNT(*), response_code FROM requests
GROUP BY response_code

您为什么要加入计划和价格?您需要从这些表中返回一些数据吗?

关于mysql - 多重连接的 SUM 记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55741493/

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