Рассчитать рассчитанный ряд в MySQL - PullRequest
1 голос
/ 20 сентября 2011

Это, вероятно, непослушное использование для sql ... Но здесь все идет ....

У меня есть таблица:

Banners
--------------
BannerID
request_t0
clicks_t0
request_t1
clicks_t1
...
request_t6
clicks_t6

Используя количество запросов и кликов,Я рассчитываю ctr (отношение кликов к показам) для каждого набора .... ctr_t0 = clicks_t0 / request_t0 * 100

Так что теперь у меня есть 6 отдельных CTR в каждой строке ....

Для вывода я бы хотел подсчитать, как часто каждый CTR является самым высоким в своей строке ...

Итак, учитывая набор:

ctr_t0    ctr_t1    ctr_t3
------    ------    ------
 2.39%     1.24%      1.5%
  1.4%     2.46%      2.2%
  3.1%     2.45%     1.45%

Я бы хотел получить в качестве результата:

ctr_t0_count    ctr_t1_count    ctr_t3_count
------------    ------------    ------------
           2               1               0

Есть идеи, как это сделать без изучения языка программирования?: -)

1 Ответ

2 голосов
/ 20 сентября 2011
select
sum(case when greatest(ctr_t0,ctr_t1,ctr_t3) = ctr_t0 then 1 else 0 end) as ctr_t0_count,
sum(case when greatest(ctr_t0,ctr_t1,ctr_t3) = ctr_t1 then 1 else 0 end) as ctr_t1_count,
sum(case when greatest(ctr_t0,ctr_t1,ctr_t3) = ctr_t3 then 1 else 0 end) as ctr_t3_count
from (select .... ) as t

где внутри выбора есть ваш предыдущий запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...