Подсчет значений в MySQL

У меня есть база данных mySql, и у меня есть вопрос о подсчете нескольких значений с одинаковым «Provider_id». Позвольте мне объяснить это как можно проще. У меня есть 3 строки: Provider_id (нет уникальных значений в конце текста), click_count (Сколько кликов на их сайте, int value) и logo_id (Этот совпадает с Provider_id, чтобы их можно было подключить). «Provider_id» и «click_count» находятся в одной таблице, а logo_id — из другой таблицы. Я хочу сопоставить «Provider_id» и «Logo_id» и хочу сосчитать click_count с соответствующим Provider_id.

Например:

(Таблица 1)

Provider_id = 102 click_count = 10

Provider_id = 102 click_count = 22

(Таблица 2)

logo_id = 102

— Что я хочу получить —

Provider_id = 102 click_count = 32

Может ли кто-нибудь помочь мне с этим?

Объяснил Provider_id:

В таблице есть уникальные идентификаторы веб-сайтов с Provider_id, поэтому Provider_id не обязательно должен быть уникальным.

0

Решение

Что вы можете сделать, это присоединиться обе таблицы и сделать группа по Provider_id и взятие суммы click_count решит проблему. Попробуйте так

select t1.Provider_id,sum(t1.click_count) from table_1 as t1
inner join table_2 as t2 on t1.Provider_id = t2.logo_id
group by t1.Provider_id
1

Другие решения

Ты можешь использовать JOIN оператор и группа по Provider_id:

SELECT b.logo_id, SUM(a.click_count) AS click_count
FROM table_1 AS a LEFT JOIN table_2 AS b ON a.Provider_id = b.logo_id
WHERE b.logo_id = 102
GROUP BY a.Provider_id;
0

использование

SELECT    `field`,
count(*) as `count`

или же

SELECT    `field`,
SUM(`counter`) as `total`

вместе с

GROUP BY `field`

и не забудьте сделать INDEX (field) (или лучше ИНДЕКС (field, counter))

0
По вопросам рекламы [email protected]