У меня есть база данных 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 не обязательно должен быть уникальным.
Что вы можете сделать, это присоединиться обе таблицы и сделать группа по 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
Ты можешь использовать 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;
использование
SELECT `field`,
count(*) as `count`
или же
SELECT `field`,
SUM(`counter`) as `total`
вместе с
GROUP BY `field`
и не забудьте сделать INDEX (field
) (или лучше ИНДЕКС (field
, counter
))