什么都不插入而不是sql

时间:2015-01-06 16:37:03

标签: sql postgresql-9.1

我遇到了以下问题。

键入时,我的结果为零

SELECT COUNT(DISTINCT(cookies))
FROM 
table_repo3 WHERE
url LIKE '%easyeasy%'
GROUP BY cur_date;

但是在下面键入时,不会插入任何行。

INSERT INTO toto (col1,col2,col3)
SELECT '2B1',CURRENT_DATE AS cur_date,
       CASE WHEN COUNT(DISTINCT(cookies)) =0 
              THEN 111 
            ELSE COUNT(DISTINCT(cookies)) 
       END
FROM 
table_repo3 WHERE
url LIKE '%easyeasy%'
GROUP BY cur_date;

输入时,我什么都没有。

SELECT '2B1',CURRENT_DATE AS cur_date,
        CASE WHEN COUNT(DISTINCT(cookies)) = 0 
               THEN 111 
             ELSE COUNT(DISTINCT(cookies)) 
        END
FROM 
table_repo3 WHERE
url LIKE '%easyeasy%'
GROUP BY cur_date;

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为您不希望声明中出现GROUP BY。如果它已成功通过cur_date聚合,那么您将插入多个ID为281的记录。假设ID是表中的主键,那么您将收到错误。

如果您移除GROUP BY,您将获得具有匹配网址的所有不同Cookie的计数。

INSERT INTO toto (col1,col2,col3)
SELECT '2B1',CURRENT_DATE AS cur_date,CASE WHEN COUNT(DISTINCT(cookies)) =0 
    THEN 111 
    ELSE COUNT(DISTINCT(cookies)) END
FROM table_repo3
WHERE url LIKE '%easyeasy%'
相关问题