问题标签 [distinct-on]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 如何使用 DISTINCT ON 但 ORDER BY 另一个表达式?
模型Subscription
has_many
SubscriptionCart
。
ASubscriptionCart
有一个status
和一个authorized_at
日期。
我需要authorized_at
从与 a 关联的所有购物车中选择日期最早的购物车Subscription
,然后我必须按此列对所有返回的Subscription
结果进行排序。subscription_carts.authorized_at
下面的查询正在运行,但我不知道如何选择DISTINCT ON subscription.id
以避免重复,但是ORDER BY subscription_carts.authorized_at
.
到目前为止的原始 sql 查询:
如果我先尝试ORDER BY subscription_carts.authorized_at
,我会得到一个错误,因为DISTINCT ON
andORDER BY
表达式的顺序必须相同。
我发现的解决方案对于我需要的东西来说似乎太复杂了,而且我没有实施它们,因为我不完全理解它们。
GROUP BY subscription_id
然后从该组中选择而不是使用会更好DISTINCT ON
吗?任何帮助表示赞赏。
postgresql - Typeorm order by after distinct on 与 postgresql
我有一个下表:
ID | product_id | 价格 |
---|---|---|
1 | 1 | 100 |
2 | 1 | 150 |
3 | 2 | 120 |
4 | 2 | 190 |
5 | 3 | 100 |
6 | 3 | 80 |
我想为产品选择最便宜的价格并按价格排序
预期输出:
ID | product_id | 价格 |
---|---|---|
6 | 3 | 80 |
1 | 1 | 100 |
3 | 2 | 120 |
到目前为止我尝试了什么:
此查询返回最便宜的产品,但不对它们进行排序。所以,addOrderBy
对产品没有影响。有没有办法对产品进行分类distinctOn
?
sql - 如何为不同的集合和子集提取最大时间戳
编辑:DBMS = Hadoop,使用 Teradata SQL 助手
这是原始表。有 20 个位置值 (c1)。每个位置都有一组过道 (c2)。我想从此表中获取所有记录集,以获取不同位置及其基于 max(tstamp) 的不同过道集。
地点 | 走道 | 邮票 | 数量 | 时间 |
---|---|---|---|---|
12 | 420 | 2021 年 4 月 16 日下午 12:22:01 | 999 | 999 |
23 | 220 | 2021 年 4 月 16 日晚上 11:22:01 | 8888 | 222 |
31 | 310 | 2021 年 4 月 16 日晚上 10:22:01 | 666 | 333 |
12 | 420 | 2021 年 4 月 16 日上午 12:22:01 | 666 | 444 |
31 | 120 | 2021 年 4 月 16 日下午 3:22:01 | 666 | 555 |
22 | 210 | 2021 年 4 月 16 日下午 1:22:01 | 666 | 666 |
我用这个
SELECT*FROM store_control WHERE store_control.tstamp IN (SELECT MAX(tstamp) FROM store_control AS sql2)
结果:
地点 | 走道 | 邮票 | 数量 | 时间 |
---|---|---|---|---|
23 | 220 | 2021 年 4 月 16 日晚上 11:22:01 | 8888 | 222 |
我想要的是这样的:
地点 | 走道 | 邮票 | 数量 | 时间 |
---|---|---|---|---|
12 | 420 | 2021 年 4 月 16 日下午 12:22:01 | 999 | 999 |
22 | 210 | 2021 年 4 月 16 日下午 1:22:01 | 666 | 666 |
23 | 220 | 2021 年 4 月 16 日晚上 11:22:01 | 8888 | 222 |
31 | 310 | 2021 年 4 月 16 日晚上 10:22:01 | 666 | 333 |
31 | 120 | 2021 年 4 月 16 日下午 3:22:01 | 666 | 555 |