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 14:03:27 浏览: 23
这个错误可能是因为你已经在数据库中创建了名为 `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` 选项,以避免在删除不存在的表时出现错误。
相关问题
select count(*) from (select distinct * from 全量触达集.装移维 ) 错在哪里
这个 SQL 查询语句不太符合语法规范,会导致语法错误。主要问题有:
1. 子查询缺少别名:子查询必须指定一个别名,否则会出现语法错误。
2. DISTINCT 关键字使用不正确:DISTINCT 关键字应该放在 SELECT 关键字之后,而不是放在子查询之后。
正确的 SQL 查询语句应该是这样的:
```
SELECT COUNT(*) FROM (SELECT DISTINCT * FROM 全量触达集.装移维) AS t;
```
这个 SQL 查询语句的意思是,在全量触达集.装移维表中去重后,统计总行数。
create table 重保进度.重保去重0527 select distinct * from 重保整理0527;如何让这个语句快一些
可以考虑给查询语句中的表添加索引。可以为表中经常用到的列添加索引,这样可以大大提高查询速度。可以使用以下语句为需要查询的列添加索引:
```
CREATE INDEX index_name ON table_name (column_name)
```
其中,index_name 是索引的名称,table_name 是表名,column_name 是需要添加索引的列名。需要注意的是,索引会占用一定的存储空间,因此需要根据实际情况来添加索引。