Impala查询:组合多个COUNT个DISTINCT WHERE子句

时间:2015-06-08 23:02:54

标签: mysql sql count substring impala

在impala上,我正在尝试计算包含“101”,“102”或“103”的不同样本ID的数量。

以下是我的数据示例:

| sample_id | 
 ___________
| 101-345-5 | 
| 101-345-6 | 
| 101-345-6 | 
| 102-345-5 | 
| 103-345-5 | 
| 103-345-8 | 
| 103-345-8 | 

我想了解每个研究组中有多少个不同的样本ID:

| Study | Count | 
 _______________
| 101   |   2   | 
| 102   |   1   | 
| 103   |   2   | 

我可以轻松创建单独的查询以查找每个组中的数字:

SELECT COUNT(DISTINCT ill.sample_id) as 101_count
FROM illumina_data ill
WHERE SUBSTRING(ill.sample_id, 1,3) = "101" 

但我真的想弄清楚如何使用单个查询来查找101,102和103的计数。

1 个答案:

答案 0 :(得分:2)

分组将执行技巧http://sqlfiddle.com/#!9/1d75f/6

SELECT SUBSTRING(sample, 1,3) , COUNT(DISTINCT sample)
FROM samples 
group by SUBSTRING(sample, 1,3);