@tispoint

Как правильно написать sql?

Помогите пожалуйста правильно соединить два последовательных запроса в один.
Я совсем не специалист.

Первый запрос:
SELECT RelPage_Y AS RP
FROM Keys
WHERE (((Keys.mp_group)=388))
UNION ALL SELECT RelPage_G AS RP
FROM Keys
WHERE (((Keys.mp_group)=388));


А второй запрос выводит самую часто встечаемую строку из первого:
SELECT q1.RP, Count(*) AS Выражение1
FROM q1
GROUP BY q1.RP
HAVING (((Count(*))>=All (select	 count (*)
from q1
group	 by RP
)));


Все работает, строку выводит, но хотелось бы объединить это все в один запрос.

Можно ли как-то объединить это все в один запрос?
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
select top 1 keys from (
SELECT RelPage_Y AS RP
FROM Keys
WHERE (((Keys.mp_group)=388))
UNION ALL SELECT RelPage_G AS RP
FROM Keys
WHERE (((Keys.mp_group)=388))
)
group by RP
order by count(RP) desc


то бишь результаты первого запроса
группируем по ключу
сортируем по убыванию count()
берем только первую строку
дальше к этому можно уже прицепить развернутое (join по key )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы