sql - SQL仅选择第一列基本的唯一记录
问题描述
我得到了一张桌子:
Code Price
A | 200
A | 199
B | 300
B | 320
C | 400
C | 410
如何选择这些数据来获取
A | 200
B | 300
C | 400
我想出的是
SELECT DISTINCT
但它不起作用,如果我尝试使用
GROUP BY CODE
我得到:
选择列表中的“Table.Code”列无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
提前感谢您的任何提示。
解决方案
sql 没有“首先出现”的聚合,但有一个 hack:
with first_price_per_code as (
select Code, Price, r = row_number() over (partition by Code order by (select null))
from Table
) select Code, Price from first_price_per_code where r = 1
当然,这种行为是未定义且不受支持的,祝你好运!
推荐阅读
- amazon-web-services - aws 有没有像 vimeo 这样的视频服务?
- google-cloud-platform - 为 Google Cloud Endpoints 启用防火墙
- linux - 如何在 Yocto 发行版上创建交换分区/文件
- java - 使用令牌交换模拟 Keycloak
- android - Android 页面不使用 RxPagingSource 中的 adapter.refresh() 刷新
- airflow - 用于简单频繁 DAG/任务的 Apache Airflow 基准测试?
- python - 如何使用 openpyxl 保存 excel 文件并按原样保留数据透视表?
- docker - Docker 登录成功,但没有拉或推被拒绝
- geometry - Threejs聚光灯通过网格问题
- javascript - javascript setTimeout在while循环中