MySQL выбрать отличное значение (и подсчитать количество значений)

0

Я застрял в формировании MySQL-запроса. У меня 6 таблиц с похожими столбцами. Прежде чем вы спросите, их нужно обновлять отдельно и удалять; вместе с количеством данных.

Таким образом, чтобы получить сумму из нескольких таблиц, я использую SELECT SUM (x) FROM (SELECT COUNT (значение) как x и т.д.),

Чтобы получить один уникальный идентификатор, я использую DISTINCT (значение). Теперь мне нужно объединить их в запрос с двумя столбцами, поэтому у меня есть уникальное значение и количество.

Мои данные выглядят так: например, таблица 1 (умножить на 6):

    till_no  | fruit  | vegetables
    123      | apple  |  null
    123      | apple  | carrot
    125      | apple  | pear
    124      | apple  | null

Я хочу 123 | 2, 124 | 1, 125 | 1

    SELECT DISTINCT(y), SUM(a) FROM (
      (SELECT till_no as y, (SELECT COUNT(till_no)  FROM Shop1) as a FROM Shop1 c)
      UNION (SELECT till_no as y, (SELECT COUNT(_till_no)  FROM Shop2) 
           as a FROM Shop2 c)
       ) multipleTables
Теги:
multiple-tables

2 ответа

0

Анкит поставил меня на правильный путь.

Решение:

     SELECT z, SUM(y) 
     FROM (SELECT ea as z, COUNT(ea) as y FROM table1 GROUP BY ea
     UNION
     SELECT ea as z, COUNT(ea) as y FROM table2 GROUP BY ea
     UNION
     SELECT ea as z, COUNT(ea) as y FROM table3 GROUP BY ea
     UNION
     SELECT ea as z, COUNT(ea) as y FROM table4 GROUP BY ea
     UNION
     SELECT ea as z, COUNT(ea) as y FROM table5 GROUP BY ea
     UNION
     SELECT ea as z, COUNT(ea) as y FROM table6 GROUP BY ea) 
     multipletables
     GROUP BY y

Трюк к решению решения состоит в том, чтобы разбить его на небольшие шаги... логически 1 + 1 уверен, что удары 47 + 126

0

Нет необходимости использовать DISTINCT. Предложение GROUP BY возьмет на себя это от вашего имени. Вы можете попробовать выполнить запрос -

SELECT CONCAT(y, COUNT(y)) 
FROM (SELECT till_no as y FROM Shop1
      UNION
      SELECT till_no as y FROM Shop2
      UNION
      SELECT till_no as y FROM Shop3
      UNION
      SELECT till_no as y FROM Shop4
      UNION
      SELECT till_no as y FROM Shop5
      UNION
      SELECT till_no as y FROM Shop6) multiple tables
GROUP BY y
  • 0
    Спасибо Ankit, хорошего вам, я попробую код
  • 0
    Нет не работает
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню