У меня проблема с SQL-запросом, это можно сделать в «обычном» SQL, но, поскольку я уверен, что мне нужно использовать некоторую группу concatenation (не может использовать MySQL), поэтому второй вариант - диалоги ORACLE, так как будет база данных Oracle. Скажем, у нас есть следующие объекты:Oracle ListaGG, Top 3 самых частых значения, заданных в одном столбце, сгруппированных по ID
Таблица: Ветеринарные посещения
Visit_Id,
Animal_id,
Veterinarian_id,
Sickness_code
Допустим есть 100 посещений (100 visit_id) и каждый animal_id посещение около 20 раз.
Мне нужно создать SELECT
, сгруппированных по Animal_id с 3-мя колоннами
- animal_id
- второй показывает агрегированные суммы посещений гриппа для этого конкретного животного (скажем, грипп, sickness_code = 5)
- 3-я колонка показывает три верхних кодов болезни для каждого животного (верхние 3 чаще всего кодов для данного конкретного животного_ид)
Как это сделать? Первый и второй столбцы просты, но в-третьих? Я знаю, что мне нужно использовать LISTAGG из Oracle, OVER PARTITION BY, COUNT и RANK, я пытался связать это вместе, но не получилось так, как я ожидал :(Как должен выглядеть такой запрос?
Здравствуйте! Добро пожаловать в StackOverflow! Не могли бы вы разместить небольшой набор выборочных данных, а также пример того, что вы хотите вывести? – dvsoukup
Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (Http: // spaghettidba.ru/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum /), чтобы узнать, как улучшить качество вопроса и получить лучшие ответы. –
[** Как создать минимальный, полный и проверенный пример **] (http://stackoverflow.com/help/mcve) Например, вместо 100 посещения используйте 10. два животного, и каждый получает 5 посещений. и показать результат с результатом TOP 2. –