@Leopandro
Разработчик CRM/ERP систем

Как сократить одинаковый код SELECT внутри SELECT?

Таблица состоит из таких полей
customer, item, total
select web_deal.customer, (
        SELECT group_concat(DISTINCT item)
        ) as gems, sum(web_deal.total) as spent_money
    from web_deal
    where web_deal.item in (
        select item
        from
            (select web_deal.customer as customer,
                    web_deal.item
             from web_deal
             where customer IN (
                 select web_deal.customer from web_deal
                 group by web_deal.customer
                 order by count(web_deal.total) DESC
                 limit 5
             )
             group by web_deal.customer, web_deal.item
             order by sum(web_deal.total) DESC)
        group by item
        having count(item) > 1
    )
    group by web_deal.customer
    order by count(web_deal.total) DESC
    limit 5

нужно выбрать 5 клиентов заказавших больше всего предметов, выводя предметы которые есть по крайней мере у 2 покупателей из топа 5.
Код прекрасно работает, но там есть 2 раза выбор топа 5 клиентов, как это можно исправить?
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы