Как я могу запросить агрегат категориальной переменной, только если она имеет минимальное количество (Oracle SQL Разработчик) - PullRequest
0 голосов
/ 10 апреля 2020

Я надеюсь, что формулирую это право.

У меня есть таблица, из которой я хочу получить информацию (технически эта таблица является представлением, но я буду использовать все атрибуты в своем операторе select)

Я хочу получить из таблицы только в том случае, если количество групп категориальной переменной не менее трех.

enter image description here

В приведенном ниже примере Допустим, имя таблицы называется Shit_to_eat, и я хочу извлечь из этой таблицы показатели, такие как калории и вес. (g) Я собираюсь написать запрос, который даст мне эти показатели, объединенные в группы фруктов, которые имеют минимальное количество членов.

Я пытаюсь ответить на вопрос:

SELECT DISTINCT FRUIT, VARIETY_NAME, AVG(WEIGHT),  SUM(CALORIES)  FROM SHIT_TO_EAT 
WHERE COUNT VARIETY_NAME>= 3 GROUP BY FRUIT

И я ожидаю получить статистику по яблокам и апельсинам, потому что каждый из них содержит по два члена, но ничего не относится к бананам и агаве, потому что каждый из них содержит только два члены.

Ответы [ 2 ]

2 голосов
/ 10 апреля 2020

Попробуй ниже - используя having предложение

SELECT FRUIT, AVG(WEIGHT), SUM(CALORIES)  
FROM SHIT_TO_EAT 
GROUP BY FRUIT
having COUNT(VARIETY_NAME)>= 3 
0 голосов
/ 10 апреля 2020

Ниже ваше решение

select
 fruit, 
 AVG(weight) as avg_weight, 
 SUM(calories) as total_calories  
from shit_to_eat 
group by
    fruit
having COUNT(variety_name)>= 3 
...