新氧气 2022-10-11 18:17 采纳率: 0%
浏览 11
已结题

doris求bitmap交集

我在使用Doris求bitmap交集的函数--bitmap_intersect时遇到一个问题:

执行:
select bitmap_count(bitmap_intersect(uid))
from userprofile_label_mid_hive
where (labelid = 'people_sta_bind_days' and labelweiht = '999.0')
or (labelid = 'people_sta_sex_01' and labelweiht= '1.0')

执行结果返回 0。

但是执行:
select bitmap_count(bitmap_intersect(uid))
from (
select uid
from userprofile_label_mid_hive
where (labelid = 'people_sta_bind_days' and labelweiht = '999.0')
or (labelid = 'people_sta_sex_01' and labelweiht= '1.0')
union all
select null
) as aa
执行结果返回 266。 266是正确的。

同样的,我将where条件拆开:
select bitmap_count(bitmap_intersect(uid))
from
(
select uid from userprofile_label_mid_hive
where labelid = 'people_sta_bind_days' and labelweiht = '999.0'
union all
select uid from userprofile_label_mid_hive
where labelid = 'people_sta_sex_01' and labelweiht= '1.0'
) as aa
执行结果也是返回 266。

这3条SQL语句的逻辑是一样的,为什么第1条SQL语句得出来的数是0?

下面是我的建表语句:
CREATE TABLE userprofile_label_mid_hive (
labelid varchar(50) NULL COMMENT "",
labelweiht varchar(50) NULL COMMENT "",
uid bitmap BITMAP_UNION NULL COMMENT ""
) ENGINE=OLAP
AGGREGATE KEY(labelid, labelweiht)
COMMENT "OLAP"
DISTRIBUTED BY HASH(labelid) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"in_memory" = "false",
"storage_format" = "V2"

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月19日
    • 创建了问题 10月11日

    悬赏问题

    • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
    • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
    • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
    • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
    • ¥45 求17位带符号原码乘法器verilog代码
    • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
    • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
    • ¥15 怎么看我在bios每次修改的日志
    • ¥15 python+mysql图书管理系统
    • ¥15 Questasim Error: (vcom-13)