我目前有一个查询,可以在4个不同的时间序列中抓取关键字出现次数(在本例中为4个不同的星期)。
SELECT CASE
WHEN request_unixtime > 1453907061 AND request_unixtime < 1454511861 THEN 'cnt3'
WHEN request_unixtime > 1454511861 AND request_unixtime < 1455116661 THEN 'cnt2'
WHEN request_unixtime > 1455116661 AND request_unixtime < 1455721461 THEN 'cnt1'
WHEN request_unixtime > 1455721461 AND request_unixtime < 1456412661 THEN 'cnt'
END,
count(*) FROM keywords
WHERE
keyword = 'football'
AND request_unixtime > 1453907061 AND request_unixtime < 1456412661
GROUP BY CASE
WHEN request_unixtime > 1453907061 AND request_unixtime < 1454511861 THEN 'cnt3'
WHEN request_unixtime > 1454511861 AND request_unixtime < 1455116661 THEN 'cnt2'
WHEN request_unixtime > 1455116661 AND request_unixtime < 1455721461 THEN 'cnt2'
WHEN request_unixtime > 1455721461 AND request_unixtime < 1456412661 THEN 'cnt'
END;
谁的结果看起来像这样...
=============
| cnt | 35 |
| cnt2 | 30 |
| cnt3 | 27 |
| cnt4 | 41 |
但是,我希望能够同时为多个关键字执行此操作。而不是
WHERE keyword='football'
我想
WHERE keyword IN ('football','soccer','tennis)
但我不知道如何重新制定CASE和GROUP BY,最终得出一个可以通过关键字打破计数的结果。有什么想法吗?
答案 0 :(得分:0)
只需将关键字添加到SELECT
列表和GROUP BY
即可:
SELECT
K.keyword,
CASE
WHEN K.request_unixtime > 1453907061 AND K.request_unixtime < 1454511861 THEN 'cnt3'
WHEN K.request_unixtime > 1454511861 AND K.request_unixtime < 1455116661 THEN 'cnt2'
WHEN K.request_unixtime > 1455116661 AND K.request_unixtime < 1455721461 THEN 'cnt1'
WHEN K.request_unixtime > 1455721461 AND K.request_unixtime < 1456412661 THEN 'cnt'
END AS time_series,
count(*) AS cnt
FROM
Keywords K
WHERE
K.request_unixtime > 1453907061 AND
K.request_unixtime < 1456412661 AND
K.keyword IN ('football', 'tennis', 'soccer')
GROUP BY
K.keyword,
CASE
WHEN K.request_unixtime > 1453907061 AND K.request_unixtime < 1454511861 THEN 'cnt3'
WHEN K.request_unixtime > 1454511861 AND K.request_unixtime < 1455116661 THEN 'cnt2'
WHEN K.request_unixtime > 1455116661 AND K.request_unixtime < 1455721461 THEN 'cnt1'
WHEN K.request_unixtime > 1455721461 AND K.request_unixtime < 1456412661 THEN 'cnt'
END;
如果您要直接查看数据(而不是从前端/报告中调用此代码),那么您可能还想添加ORDER BY
。