sql - TypeORM & Postgres:只计算来自多列的唯一不同值
问题描述
我有各种 SQL 查询,它们从 DB 中返回唯一/不同的值,(或计算它们),例如:
SELECT buyer as counterparty
FROM public.order
UNION
SELECT seller as counterparty
FROM public.order
或者
SELECT COUNT(*)
FROM (
SELECT DISTINCT p
FROM public.order
CROSS JOIN LATERAL (VALUES(seller),(buyer)) AS C(p)
) AS internalQuery
我的表的示例结构:
id buyer seller
0 A B
1 B A
2 B D
3 D A
4 A D
期望的结果:
3 or A,B,D
我想用 TypORM 查询生成器重写它们,但我不知道如何替换CROSS JOIN LATERAL (VALUES(seller),(buyer)) AS C(p)
或UNION
在我的情况下。在这种情况下, TypeORM的示例和文档覆盖率非常差。
有什么选择吗?
我已经看到了各种方法,例如.getCount
可以.distinct(true)
帮助我并轻松找到一列的解决方案。
所以我明白,如果我想找到确切的数字,而不是 doc 结果,我应该使用.getCount
而不是.getMany
但我不明白,如何通过 typeORM 从多列中选择(和合并)值以接收来自多列的不同值。
我正在使用PostgrSQL,所以当我尝试时:
const query = repository.createQueryBuilder('order')
.distinctOn(['buyer', 'seller'])
.limit(100)
.getMany()
我收到每个字段中每个不同值的文档,所以3
我得到的不是6
值(3 个由 column1 不同,3 个由 column2 不同)
解决方案
推荐阅读
- karate - 空手道框架“no-auth”授权问题
- python - 如何从扫描的 pdf 图像中提取分块内容?
- python - Python 中烛台/OHLC 数据的模板匹配
- c# - 为什么在这种情况下会出现“类型是在未引用的程序集中定义的”?
- python - 与 cupy 的自相关
- javascript - Javascript正则表达式解析复杂的url字符串
- python - 提交时手动呈现 Django formset 重定向问题
- postgresql - Postgresql pg_profile 在创建快照时出错
- javascript - 轮播 css3 动画表现怪异
- python - 使用 TF 2.0 将 saved_model 转换为 TFLite 模型