我试图将一些查询组合(最终)在存储过程中使用它们,因为从长远来看,由于计算恐怕会花费一些时间来处理,而且我猜数据仓库可以使查找速度更快。
我想到了这一点,但是我不断收到语法错误消息(#1064)(请参阅与您的MySQL服务器版本相对应的手册,以获取正确的语法,以在'select different'附近使用)
有谁知道一个不错的方法吗?
insert into datawarehouse (itemid,rating) values
(select distinct itemid from ratings),
(select sum(rating)/count(*)from ratings where itemid in (select distinct itemid from ratings))
如果我分别运行内部选择查询,它可以工作,但将其组合起来似乎很麻烦。
简而言之,我想检索(i)表评级不同的itemid,(ii)对每个itemid的表评级行进行一些计算
并将其复制到表格数据仓库中。
如果有人对此有想法或很好的阅读,我很想听听。
最佳答案
使用INSERT INTO ... SELECT
和GROUP BY
:
INSERT INTO datawarehouse (itemid, rating) SELECT itemid, sum(rating)/count(*) FROM ratings GROUP BY itemid
关于mysql - mysql(innodb)选择不同的+计算值以复制到其他表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29772219/