首页 > 解决方案 > 使用 CTE 的多个查询的 SQL 连接

问题描述

WITH group1 AS 
(    
    SELECT 
        [column1],
        [column2]   
    FROM 
        table1
),
Group2 AS 
(
    SELECT
        (column3),  
        COUNT(column3) 
    FROM
        table 2 AS Count   
    WHERE
        (year (date_value) = 2018 and month(Date_vaLue) = 2)
    GROUP BY
        column2
)
SELECT *
FROM group1
JOIN group2 ON group1. table1 = group2.table2;

我收到一个错误:

没有为“group2”的第 2 列指定列名

由于这不是一列,而只是一个标识符,我很困惑为什么它认为代码(Group2 AS (Select (column3 ),)是一列。

我是 sql 新手,所以这可能只是一个愚蠢的错误

Column 1是名称,第二列是该名称的唯一键

Column 2column 3包含相同的确切数据,我只是想显示它在第 3 列表的数据库中出现的次数,包括 0,并将其与第 1 列相关联。

中的每个数据点column 3仅包含来自 的数据column2

提前致谢!

标签: sql

解决方案


我认为您需要将列命名为 COUNT(column3) ,所以...

Group2 AS (Select (column3 ),
COUNT (column3) as cntr
From table 2 as Count
Where (year (date_value) = 2018 and month(Date_vaLue) = 2)
Group by column2
)

推荐阅读