我想创建一个表,通过SQL查询从其他表填充其数据。例如:
使用列创建TABLE1(AVERAGE_ROWS int,AVERAGE_RATING int)
插入TABLE1值(SELECT COUNT(*)FROM TABLE X,SELECT AVG(rating)FROM TABLE X)
插入TABLE1值(SELECT COUNT(*)FROM TABLE Y,SELECT AVG(rating)FROM TABLE Y)
这可能吗?
提前致谢,el retardo。
答案 0 :(得分:2)
您需要遵循以下格式:
INSERT INTO table2 (column_name(s))
SELECT column_name(s) FROM table1;
所以在你的情况下,它看起来像(SQL Fiddle):
INSERT INTO TABLE1 (AVERAGE_ROWS, AVERAGE_RATING)
SELECT COUNT(*), AVG(rating) FROM X
UNION
SELECT COUNT(*), AVG(rating) FROM Y;
正如您在示例中看到的那样,由于AVG(rating)
被声明为AVERAGE_RATING
,您将在int
上失去主张。您最好使用decimal(,)
代替。类似于SQL Fiddle。