Sql 在请求中使用全局方式
我的餐桌销售Sql 在请求中使用全局方式,sql,hive,cassandra,hiveql,Sql,Hive,Cassandra,Hiveql,我的餐桌销售 ID | NAMEPRODUCT | CATEGORY | AMOUNT 1 | COMPUTER | IT | 600 2 | T-SHIRT | CLOTHING | 25 3 | Doll | TOY | 10 4 | KEYBORD | IT | 30 5 | CAP | CLOTHING | 10 3 | TOY
ID | NAMEPRODUCT | CATEGORY | AMOUNT
1 | COMPUTER | IT | 600
2 | T-SHIRT | CLOTHING | 25
3 | Doll | TOY | 10
4 | KEYBORD | IT | 30
5 | CAP | CLOTHING | 10
3 | TOY CAR | TOY | 40
我想提出这类请求:
SELECT SALES1.NAMEPRODUCT,
SALES1.CATEGORY,
SUM(SALES1.AMOUNT)/( select SUM(AMOUNT) FROM SALES AS SALES2 WHERE SALES1.CATEGORY=SALES2.CATEGORY) as ratio
from SALES AS SALES1
GROUP BY
SALES1.NAMEPRODUCT,SALES1.CATEGORY
NAMEPRODUCT | CATEGORY | ratio
COMPUTER | IT | 0,95
T-SHIRT | CLOTHING | 0,71
Doll | TOY | 0,20
KEYBORD | IT | 0,5
CAP | CLOTHING | 0,29
TOY CAR | TOY | 0,80
或
我使用带有ApacheHive连接器的Cassandra数据库
我不能对hive和cassandra提出这种请求
有人能帮我吗 您似乎只有一张桌子。如果是,请使用窗口功能:
select nameproduct, category,
sum(amount) as amount,
sum(amount) * 1.0 / sum(sum(amount)) over (partition by category) as ratio
from sales1
group by nameproduct, category;
样本数据和期望结果将有所帮助。为什么您的查询不起作用?@GordonLinoff我添加示例数据要从count或sum中删除一个维度,与partition by相反的是什么?@broly21<代码>分区依据是可选的。您可以删除它以对所有数据求和。
select nameproduct, category,
sum(amount) as amount,
sum(amount) * 1.0 / sum(sum(amount)) over (partition by category) as ratio
from sales1
group by nameproduct, category;