gpt4 book ai didi

mysql - SQL COUNT 使用 GROUP_CONCAT 返回错误值

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

我目前正在编写一个查询来搜索三个表(invoice、job_lines 和 item_records)。 job_lines 和 item_records 每个发票.id 都有多个条目,因此我尝试将它们合并为每个 id 一行。

到目前为止似乎有效,但 count(*) 返回的是每行 item_records.MAWB/item_records.HAWB 的数量,而不是分组条目的总数。

有没有办法获取实际的组总数?

SELECT      

COUNT(*),
invoice.id,
IFNULL(GROUP_CONCAT(DISTINCT job_lines.job_number SEPARATOR ' '),''),
IFNULL(GROUP_CONCAT(DISTINCT item_records.MAWB SEPARATOR ' '),''),
IFNULL(GROUP_CONCAT(DISTINCT item_records.HAWB SEPARATOR ' '),'')
FROM

invoice
LEFT JOIN job_lines ON invoice.id=job_lines.taken
LEFT JOIN item_records ON invoice.job_number=item_records.job_number
GROUP BY

invoice.id

示例数据:

ID 工作编号 HAWB MAWB
1| 200001 | a1,a2,a3 | b2,b3
2| 200002 | a7、a8、| b1
3| 255544 | 255544 a11 | a11 | b4

在本例中,我在获取 ID 总数,但我从每行获取 HAWB/MAWB 总数。

最佳答案

您可以对每个发票.id 的连接记录进行计数。因此,如果您的发票 ID 有 5 个作业行和 3 个项目记录,则您将得到 5 x 3 = 15。

如果您只需要作业行数,请使用COUNT(DISTINCT job_lines.id)

如果您只需要项目记录的数量,请使用COUNT(DISTINCT item_records.id)

关于mysql - SQL COUNT 使用 GROUP_CONCAT 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304978/

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