【发布时间】:2020-07-20 17:19:04
【问题描述】:
我正在处理这样的 aws athena 查询:
SELECT
normalised_brand,
COUNT(DISTINCT merch1) merch1_distinct_count,
COUNT(DISTINCT category_level_1) category_level_1_distinct_count,
COUNT(*) product_distinct_count,
MIN(effective_price) maxprice,
MAX(effective_price) minprice
-- CONCAT_WS(' - ', minprice, maxprice) price_range
FROM "db"
WHERE product_gap = 'yes' AND store_name = 'petco'
group by normalised_brand
这将给出如下结果:
现在我将 maxprice 和 minprice 作为两个单独的列,但我想将它们组合成一列“价格范围”,其中 minprice 和 maxprice 由“-”字符串分隔,所以看起来像这样:
price_range
3.99 - 5.33
2.11 - 9.99
2.22 - 2.22
我尝试通过添加 CONCAT 来做到这一点,但没有得到有效的结果。我对 sql 非常陌生,我想知道如何通过将 MAX() 和 MIN() 结果组合成一个字符串值来创建这个价格范围列。
另外,我可以向 SQL 添加逻辑,以便如果价格范围为零(例如 2.22 - 2.22 的情况,其中最高价格和最低价格相同),则只显示单个值而不是价格范围相同的最大值/最小值?
这最后一部分是一个延伸目标,首先我只是试图创建 price_range 列
【问题讨论】:
标签: sql presto amazon-athena