尽管groupby表达式上的值不同,但仍对查询项进行分组

n53p2ov0  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(359)

我试图找到一种方法,将表中的项按以下3列进行分组
初始表:

  1. _id | ind_cel_phone | ind_home_phone
  2. ------------------------------------
  3. 1 | TRUE | FALSE
  4. 1 | FALSE | FALSE
  5. 2 | TRUE | FALSE
  6. 3 | TRUE | FALSE
  7. 4 | TRUE | FALSE
  8. 2 | FALSE | FALSE
  9. 5 | TRUE | TRUE
  10. 6 | TRUE | TRUE
  11. 1 | FALSE | TRUE

我期待的结果是:

  1. _id | ind_cel_phone | ind_home_phone
  2. ------------------------------------
  3. 1 | TRUE | TRUE
  4. 2 | TRUE | FALSE
  5. 3 | TRUE | FALSE
  6. 4 | TRUE | FALSE
  7. 5 | TRUE | TRUE
  8. 6 | TRUE | TRUE

注意:
_id=1得到三行,第一行为真,第二行为假,第三行为假,结果为真
_id=2得到两行,第一行为true false,第二行为false,结果为true false
其中,如果有两行或多行具有相同的id,但它们的ind列具有不同的值,则真值具有优先级。
我试过这样的方法:

  1. SELECT
  2. _id
  3. , ind_cel_phone
  4. , ind_home_phone
  5. FROM base_table
  6. GROUP BY _id
  7. , ind_cel_phone
  8. , ind_home_phone

由于值不同,我的结果表与初始结果表相同,而不是预期结果。
有没有一种方法可以将它们分组以获得预期的结果?

cvxl0en2

cvxl0en21#

bool_or() 应该这样做:

  1. select _id, bool_or(ind_cel_phone), bool_or(ind_home_phone)
  2. from base_table
  3. group by _id

相关问题