create table work.全量触达汇总 select distinct a.客户号码, if(a.客户号码 is not null ,'CATI调查',null) 触达类型, DATE_FORMAT(STR_TO_DATE(a.日期, '%Y%m%d'), '%Y-%m-%d') 日期, a.平均分 from 全量触达集.cati调查 a;这个语句select语句是正常运行的,为什么加上create语句就不行了
时间: 2024-02-06 18:03:27 浏览: 59
mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
这个错误可能是因为你已经在数据库中创建了名为 `work.全量触达汇总` 的表,而你的 `CREATE TABLE` 语句中的表名与之重复,从而导致了错误。
如果你想要重新创建这个表,你可以使用 `DROP TABLE` 语句先删除已有的表,然后再执行 `CREATE TABLE` 语句,如下所示:
```sql
-- 删除已有的表
DROP TABLE IF EXISTS work.全量触达汇总;
-- 创建新表
CREATE TABLE work.全量触达汇总 (
客户号码 VARCHAR(20),
触达类型 VARCHAR(20),
日期 DATE,
平均分 FLOAT
);
-- 插入数据
INSERT INTO work.全量触达汇总
SELECT DISTINCT
a.客户号码,
IF(a.客户号码 IS NOT NULL, 'CATI调查', NULL) AS 触达类型,
DATE_FORMAT(STR_TO_DATE(a.日期, '%Y%m%d'), '%Y-%m-%d') AS 日期,
a.平均分
FROM 全量触达集.cati调查 a;
```
注意,这里的 `DROP TABLE` 语句中使用了 `IF EXISTS` 选项,以避免在删除不存在的表时出现错误。
阅读全文