首页 > 解决方案 > 任何内部联接都无法使用日期组合两个表

问题描述

我使用点击屋。下面的代码不起作用,尽管这种编写查询的方式在其他 SQL 数据库中有效。

    select * 
    from 
        ((select event_date, uniq(attraction_hash) 
          from table_1
          where event_date >= toDate('2021-07-13 00:00:00') - 30
            and event_date <= toDate('2021-10-13 00:00:00')
            and trans_type in ('initial', 'trial')
group by event_date)
    any inner join
        (select event_date, uniq(feid) 
         from table_2
         where event_date >= toDate('2021-07-13 00:00:00') - 30
           and event_date <= toDate('2021-10-13 00:00:00')
         group by event_date)
    using event_date)

出现以下错误:

代码:62,e.displayText() = DB::Exception:语法错误:在位置 302 失败('any')(第 7 行,第 1 列):任何内部连接(从 table_1 选择 event_date,uniq(feid) WHERE event_date >= toDate('2021-07-13 00:00:00') - 30 和前夕。预计 UNION ALL(版本 20.9.2.20(官方版本))

请帮忙

标签: sqljoinclickhouse

解决方案


尝试按照这种方式:

SELECT
    number,
    c,
    u
FROM
(
    SELECT
        number,
        count() AS c
    FROM numbers(100)
    WHERE number > 10
    GROUP BY number
) AS t1
ANY INNER JOIN
(
    SELECT
        number,
        uniq(number % 2) AS u
    FROM numbers(16)
    WHERE number > 10
    GROUP BY number
) AS t2 USING (number)

/*
┌─number─┬─c─┬─u─┐
│     14 │ 1 │ 1 │
│     15 │ 1 │ 1 │
│     12 │ 1 │ 1 │
│     11 │ 1 │ 1 │
│     13 │ 1 │ 1 │
└────────┴───┴───┘
*/

推荐阅读