Как получить максимальное количество для конкретного продукта и группы по пользовательскому идентификатору из базы данных SQL - PullRequest
0 голосов
/ 11 мая 2018

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

enter image description here

Я пытался с подзапросом SQL, но не смог решить. Пожалуйста, помогите мне решить эту проблему.

Мне нужен вывод, как показано ниже, если название продукта bajari,

enter image description here

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Используйте следующий запрос

select customer_id, product_name, count(product_name) as mostcount from `products`  where product_name='bajari' group by customer_id having count(product_name) =
( select max(mostcount) as highest_total
    from (
         select customer_id
              , count(product_name) as mostcount
           from `products` where product_name='bajari'
         group
             by customer_id
         ) as t
);

Для пошагового решения, пожалуйста, проверьте то же решение для здесь .

Надеюсь, это поможет вам !!

0 голосов
/ 17 мая 2018
<% find_array_max = [] %>
<% count = 0%>
<%@customers.each do |customer|%>
  <%  count = @products.where(product_name: 'bajari', customer_id: customer.id).sum(:weight)%>
  <% find_array_max.push(count) %>
<% end -%>
  <%= find_array_max.max%>.kg
  <%= find_array_max.min%>.kg
0 голосов
/ 11 мая 2018

Стандарт SQL использует GROUP BY класс с subquery агрегацией:

select customer_id, Product_name, count(*) mostcount
from table t
group by customer_id, Product_name
having count(*) = (select max(counts) 
                   from (select customer_id, count(*) counts
                         from table t
                         group by customer_id, Product_name)
                  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...