postgresql - 基于同一组中其他值的 PostgreSQL 案例语句
问题描述
我有下表,并想编写一个SELECT
(在 PostgreSQL 中)将生成它下面的表。它应该GROUP
有timestamp
一个“X”和一个“Y”具有相同的timestamp
,它应该被归类为“标准”,否则如果在同一时间戳中只有“X”,则它应该被归类为“高级”。
| timestamp | data |
|--------------------------------|
| 2018-08-13 09:26:10.872 | X |
| 2018-08-13 09:26:10.872 | Y |
| 2018-08-13 09:26:11.125 | X |
| 2018-08-13 09:26:11.125 | X |
| timestamp | type |
|-------------------------|----------|
| 2018-08-13 09:26:10.872 | Standard |
| 2018-08-13 09:26:11.125 | Premium |
我已经写了以下内容:
SELECT
timestamp,
CASE
WHEN -- ??
THEN 'Standard'
ELSE 'Premium'
END AS type
FROM my_table
GROUP BY timestamp, type;
解决方案
您将只想分组timestamp
,并计算不同的data
条目。要从此计数中获取布尔值(由 要求case when
),您可以将其与 1 进行比较:
SELECT
timestamp,
CASE
WHEN count(distinct data) > 1
THEN 'Standard'
ELSE 'Premium'
END AS type
FROM my_table
GROUP BY timestamp;
推荐阅读
- discord.py - Discord.py 语音频道重命名过长
- javascript - 如何从 props 中的数组导出字符串,而不是一次导出一个值?
- python-3.x - tanh 函数返回 'nan' 值;tanh 不稳定问题
- cors - 我无法在我的 MERN 应用程序中使用 CORS,如何解决这个问题?
- javascript - Javascript将数据操作到d3堆叠图的对象数组中
- udp - 提升 asio ; udp 中的短读;如何分别读取每个 udp 数据包
- python-3.x - 有没有更好的方法来识别杂乱图像中的非结构化日文文本并使用 pytesseract 进行一些图像处理操作
- java - 如何使用 MVVM (Android) 处理多个单选按钮
- typescript - 如何定义为我的应用程序键入的 createSelector 版本?
- javascript - 通过 ajax 发送 post 请求不起作用