我有一个查询,总和所有的金额分组由不同的类别。我想得到以及%的总和金额的总和。
我的疑问是下一个:
SELECT category.name, SUM(account.amount_default_currency) FROM account
INNER JOIN accounts ON account.accounts_id = accounts.id
INNER JOIN category ON account.category_id = category.id
INNER JOIN category_type ON category.category_type_id = category_type.id
GROUP BY category.name;
我得到:
| 姓名|总和|
| - -|- -|
| 薪金|二百三十|
| 餐馆|小行星2254|
我怎么能这样做呢?
1条答案
按热度按时间q7solyqu1#
将每个总和除以总和,您可以在相同的
SELECT
中使用窗口函数而不是聚合函数来获得总和:这是因为窗口函数是在聚合函数 * 之后 * 应用的。请参阅:
我删除了到
accounts
和category_type
的连接,假设引用完整性由FK约束强制执行,则这些连接可能只是查询的压舱物,即删除的连接不会删除行。如果
category.id
是该表的主键,则使用GROUP BY c.id
,并将c.id
包括在SELECT
列表中。(“name”不一定是唯一的?)请参阅: