在一个派生表上进行多次选择

时间:2016-07-12 05:42:54

标签: mysql sql

我已经提取了一个派生表,我想在表上做出不同的选择请求,然后将它们组合在一起。

With As语句似乎不起作用(我有sql 5.7.13):一个简单的

WITH tag AS (SELECT * FROM vs_tag)
SELECT * FROM tag WHERE id < 20

给我错误代码1064。

另外,我不能

(select [queryA] from (select ...) as sub) union (select [queryB] from sub)

更具体地说,我有一个包含列(类别,值)的表格,我想提取每个类别的平均值和所有类别的平均值。

任何人都知道我应该怎么做?谢谢 !

PS:我不想两次查询子表,因为这是一个很长的请求

1 个答案:

答案 0 :(得分:0)

以下是如何通过一次传递返回每个类别的平均值和所有类别的平均值:

select category, avg(value) average
from mytable
group by category
with rollup

添加with rollup会在所有类别中添加额外的行(其类别为null)。