gpt4 book ai didi

mysql - 在具有空值的 3 个表的层次结构中计数和分组

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

我有 3 个表的层次结构。

我需要一个查询,它返回顶层表中的所有条目并计算该层次结构底部的条目。

例子:

table paragraph has columns : id_paragraph
table sentence has columns : id_sentence, id_paragraph
table word has columns : id_word, id_sentence, font, color

示例输出:

id_paragraph, sentence_count, word_count, word_count_no_font, word_count_font_present, word_count_no_color, word_count_color_present
1, 10, 100, 20, 80, 25, 75
2, 20, 200, 40, 160, 50, 150

第一行解释:id_paragraph = 1,有10个句子,这些句子中的单词总和= 100,本段中字体为空的句子中的单词总和= 20,本段中字体不为空的句子中的单词总和= 80,本段中颜色为空的句子中的单词总数= 25,本段中颜色不为空的句子中的单词总数= 75。

我看到“左连接”和“分组依据”如何为我提供 2 深层次结构的解决方案。我试着扭曲 SQL JOIN 3 TABLES WITH COUNT AND GROUP BY CLAUSE ,但显然,我没有得到任何东西。

最佳答案

只需使用count(distinct):

select s.id_paragraph,
count(distinct s.id_sentence) as num_sentences,
count(*) as num_words,
count(w.font) as num_words_with_font,
sum(w.font is null) as num_words_without_font,
count(w.color) as num_words_with_color,
sum(w.color is null) as num_words_without_color
from sentence s join
word w
on w.id_sentence = s.id_word
group by s.id_paragraph;

关于mysql - 在具有空值的 3 个表的层次结构中计数和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56828466/

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