我有一个名为sales的表
brand | model | sales
--------+----------+------
brand1 | model11 | 100
brand1 | model11 | 300
brand2 | model21 | 100
brand2 | model22 | 400
brand3 | model31 | 100我使用的是以下SQL查询
SELECT
brand, SUM(sales)/SUM(sales) OVER () as sales_share
FROM sales
GROUP BY brand以获取每个品牌的sales_share,如下所示
brand | sales_share
--------+--------------
brand1 | 0.4
brand2 | 0.5
brand3 | 0.1然而,我得到了错误的Attribute SALES.sales must be GROUPed or used in an aggregate function --有什么指示吗?
发布于 2016-07-18 18:38:59
下面的作品
SELECT
brand, SUM(sales)/SUM(SUM(sales)) OVER () as sales_share
FROM sales
GROUP BY brand原始尝试中缺少的是聚合函数-完全像错误消息所说的那样:)
发布于 2016-07-18 18:19:24
如果使用的是sql,则应按所选的每个属性进行分组。所以你的查询应该是这样的:
SELECT
brand, SUM(sales)/SUM(sales) OVER () as sales_share
FROM sales
GROUP BY brand, sales发布于 2016-07-18 18:30:17
你可以使用,
select
brand, SUM(sales)as brand_sales
into tmp
from sales
group by brand
select brand ,
total_sales /(select SUM(b.sales) from sales b) as total_sales
from tmp
drop table tmphttps://stackoverflow.com/questions/38434117
复制相似问题