选择发生次数

时间:2016-06-27 17:43:06

标签: sql select hive

我有一个包含日期和一些文本的表 - 我正在寻找其中特定字符串的计数。例如:

myDate, Text
2016-06-27, Cat food
2016-06-27, Dog toy
2016-06-27, Dog food

这样的东西
select myDate, sum(if text rlike 'Dog', 1, 0) dog_count
             , sum(if text rlike 'Cat', 1, 0) cat_count
from blah

将返回2行:

myDate, dog_count, cat_count
2016-06-27, 2, 0
2016-06-27, 0, 1

有没有办法在同一行中同时选择dog_count和cat_count?

myDate, dog_count, cat_count
2016-06-27, 2, 1

1 个答案:

答案 0 :(得分:3)

查询缺少group by。只需添加它即可在给定日期的某一行获得结果。

select myDate
, sum(if text rlike 'Dog', 1, 0) dog_count
, sum(if text rlike 'Cat', 1, 0) cat_count
from blah
group by myDate