sql - 选择具有复合主键的表上组内的每一行的值
问题描述
我正在使用 Ignite 2.8.1 我有一个表T1(a,b,c)
,其中包含a
和b
作为主列。我想知道每个b
组中每个人的价值。
通常这会很好,因为c
在这种情况下主键在功能上依赖于分组列,但是 Ignite 返回一个错误,说b
必须是group by
'a 列之一......这不是我想要的,事实上那是与不分组相同。
使用可用的SELECT - 你能建议如何让 Ignite 为每个组生成a
和生成b
,甚至只是b
. 它愉快地产生a
好像它是主键中的唯一列。
解决方案
您可能只想预先计算每个组的计数,然后为每个a
&b
组合添加此信息:
SELECT a, b, c, cnt
FROM T1
INNER JOIN (
SELECT c, COUNT(c) as cnt
FROM T1
GROUP BY c
) counts
ON counts.c = c
推荐阅读
- javascript - 是否可以在不使用 for 循环的情况下找到素数?可以仅使用过滤器方法完成吗?
- java - Blob 提交到 DB 的错误是什么?
- powershell - 将变量的结果组合到哈希表中并显示所有值
- flutter - 如何创建始终部分可见的持久底页?
- bash - 显示可用选项而不完成
- java - 使用辅助类实例化对象
- ios - AppstoreConnect:公司个人开发者名称而不是应用描述
- google-api - Google-Hire > 候选人列表过滤器参数不起作用
- python - 在python中的“from bar import foo”之后,“[foo]”有什么特殊含义吗?(也许是 python2 特定的)
- amazon-s3 - 将Kafka中的Avro转Parquet直接转入S3