У меня есть иерархия из 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, сумма слов в этом предложении в этом абзаце, где цветempty = 25, сумма слов в этом предложении в этом параграфе, где цвет не пуст = 75.
Я вижу, как «левое соединение» и «группировка по» дают мне решение иерархии из 2 глубоких,Я попытался скрутить SQL JOIN 3 ТАБЛИЦЫ С COUNT И ГРУППИТЬ ПО CLAUSE , но, очевидно, я ничего не понимаю.