我遇到了以下问题。
键入时,我的结果为零
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;
我做错了什么?
答案 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%'