使用Apache Phoenix 4.6.0对抗HBase 1.1.2。
我有一个简单的表格创建如下:
CREATE TABLE "events" (
"uuid" VARCHAR(64) PRIMARY KEY,
"event"."session" VARCHAR(64),
"event"."name" VARCHAR(32),
"event"."date" UNSIGNED_DATE,
"product"."name" VARCHAR(32),
"data"."*" VARCHAR(64)
) default_column_family='event', IMMUTABLE_ROWS=true
这些查询有效:
SELECT COUNT(*) FROM "events" AS search WHERE search."event"."name" = 'search'
SELECT COUNT(*) FROM
(SELECT click."event"."session"
FROM "events" AS click WHERE "event"."name" = 'click')
但这不是:
SELECT COUNT(*) FROM "events" AS search
WHERE search."event"."name" = 'search'
AND search."event"."session" NOT IN (SELECT click."event"."session"
FROM "events" AS click
WHERE click."event"."name" = 'click');
错误:错误502(42702):列引用不明确或重复姓名。columnName=name SQL状态:42702错误代码:502
为什么?
对不起作用的count(1)
进行尝试。很明显,您对表格进行了别名处理,但可能后台发生了一些带有星号的事情,而星号没有使用别名。