sql - Vertica DB 中的交叉连接和聚合
问题描述
我在 Vertica 数据库中有两个表
1)所有现有位置和类别的交叉连接
location_1 category_1
location_1 category_2
...
location_2 category_1
location_2 category_2
...
location_n category_n-1
location_n category_n
2) 已知位置和类别的项目列表:
item_1 location_1 category_4
item_2 location_8 category_3
...
我想计算,每个位置+类别组合中有多少项目。我怎样才能做到这一点?
解决方案
一种可能的方法:
SELECT c.location, c.category, COUNT(i.item)
FROM crosses c
LEFT JOIN items i
ON i.location = c.location AND i.category = c.category
GROUP BY c.location, c.category
这个想法是 LEFT JOIN 的结果将具有crosses
表中的所有位置和类别 - 但缺失项目的行将被NULL
-ed。
推荐阅读
- html - 标题照片四处走动
- java - 如何在文本输出之间打印空格
- python - Python 3:使用变量执行 For 循环 x 次
- python - 如何在 python 中从 SharedMemoryManager 访问共享内存
- c# - 无法引用 Windows.ApplicationModel.Core.dll
- javascript - 将边列表转换为d3中的嵌套树结构
- azure - 在 Azure DevOps 中显示关键信息 - 数据透视选项似乎有限?
- angular - HTTP observables 的 RxJS 数组:仅在上一个完成后触发下一个
- rest - 如何使用 Haskell Network.HTTP.Simple 将字符串数组发送到 Web 服务器?
- java - logback 打印带有转义序列的双引号