【发布时间】:2022-01-19 02:52:41
【问题描述】:
我正在尝试创建一个查询,它为我提供了按账户交易的总美元价值对账户进行分组的结果。该表列出了每笔交易,列有account_id(每次有人交易时都会列出)和unit_count(他们交易的美元价值)。
问题是我不知道如何在分组之前获得每个 account_id 的总美元价值 (unit_count) 的结果。我创建的当前查询结果是对单个交易进行分类,而不是对每个帐户的总价值进行分类:
WITH transaction_collapsed (unit_count, transaction_group) AS
(SELECT account_id,
CASE WHEN unit_count <= 10 then 'less than or equal to 10'
WHEN unit_count BETWEEN 11 AND 100 THEN 'between 11 and 100'
WHEN unit_count BETWEEN 101 AND 1000 THEN 'between 101 and 1000'
WHEN unit_count BETWEEN 1001 AND 10000 THEN 'between 1001 and 10000'
WHEN unit_count BETWEEN 10001 AND 100000 THEN 'between 10001 and 100000'
WHEN unit_count BETWEEN 100001 AND 1000000 THEN 'between 100001 and 1000000'
ELSE 'NA'
END
FROM beta.asset_transaction)
SELECT transaction_group, count(*)
FROM transaction_collapsed
GROUP BY transaction_group
ORDER BY transaction_group, count(*) DESC;
查询结果:
Screenshot of query results in count categorizing individual transaction
在按unit_count 对account_id 进行分类之前,我可以做一个查询吗?
account_id 是 uuid,unit_count 是数字
【问题讨论】:
-
mysql 还是 postgresql?他们是不同的
-
运行
SHOW CREATE TABLE asset_transaction;并将结果发布到您的问题中。此外,添加可以代表您正在寻找的结果的示例数据。使用dbfiddle 创建示例。 -
@ProGu Postgresql.
标签: sql postgresql psql