配置单元计数列和聚合中的值的数目

t30tvxxf  于 2021-06-27  发布在  Hive
关注(0)|答案(2)|浏览(284)

我有一个3列的表:

  1. |---------------------|------------------|------------------|
  2. | ID | IDGROUP | Parent |
  3. |---------------------|------------------|------------------|
  4. | 1 | 4 | Y |
  5. |---------------------|------------------|------------------|
  6. | 2 | 4 | N |
  7. |---------------------|------------------|------------------|
  8. | 3 | 5 | N |
  9. |---------------------|------------------|------------------|
  10. | 4 | 4 | N |
  11. |---------------------|------------------|------------------|
  12. | 5 | 6 | Y |
  13. |---------------------|------------------|------------------|

我想添加一个新列,并按如下方式计算每个组中非父(n)的数量:

  1. |-----------------|------------------|------------------|----------|
  2. | ID | IDGROUP | Parent | Count |
  3. |-----------------|------------------|------------------|----------|
  4. | 1 | 4 | Y | 2 |
  5. |-----------------|------------------|------------------|--------- |
  6. | 2 | 4 | N | 2 |
  7. |-----------------|------------------|------------------|----------|
  8. | 3 | 5 | Y | 0 |
  9. |-----------------|------------------|------------------|----------|
  10. | 5 | 6 | Y | 0 |
  11. |-----------------|------------------|------------------|----------|

我要数一个y组下n的个数

mwg9r5ms

mwg9r5ms1#

  1. SELECT id, idgroup, parent, COUNT(id) as count
  2. FROM table
  3. GROUP BY idgroup, parent
8tntrjer

8tntrjer2#

使用窗口功能:

  1. select t.*,
  2. sum(case when parent <> 'Y' then 1 else 0 end) over (partition by idgroup) as num_nonparents
  3. from t;

相关问题