mysql - SQL 分组列

标签 mysql sql grouping

我从表中进行了选择(id、组、类型、创建)。如何仅在第一次遇到“ad”类型(包括“ad”行)之前选择行。 在此示例中,我需要 id 为 8207 - 8214 的行。

  id   | group | type | created_at |
+------+-------+------+------------+
| 8214 |    83 | msg  | 1571726466 |
| 8213 |    83 | msg  | 1571724983 |
| 8212 |    83 | msg  | 1571724982 |
| 8211 |    83 | msg  | 1571724978 |
| 8210 |    83 | msg  | 1570861659 |
| 8209 |    83 | msg  | 1570861656 |
| 8208 |    83 | msg  | 1570861650 |
| 8207 |    83 | ad   | 1570861643 |
| 8206 |    83 | msg  | 1570861632 |
| 8205 |    83 | msg  | 1570861623 |
| 8202 |    83 | msg  | 1570861617 |
| 8203 |    83 | msg  | 1570861617 |
| 8204 |    83 | msg  | 1570861617 |
| 8200 |    83 | msg  | 1570861616 |
| 8201 |    83 | msg  | 1570861616 |
| 8197 |    83 | msg  | 1570861615 |
| 8198 |    83 | msg  | 1570861615 |
| 8199 |    83 | msg  | 1570861615 |
| 8194 |    83 | msg  | 1570861614 |
| 8195 |    83 | ad   | 1570861614 |
| 8196 |    83 | msg  | 1570861614 |
| 8192 |    83 | msg  | 1570861613 |

预期:

+------+-------+------+------------+
| id   | group | type | created_at |
+------+-------+------+------------+
| 8214 |    83 | msg  | 1571726466 |
| 8213 |    83 | msg  | 1571724983 |
| 8212 |    83 | msg  | 1571724982 |
| 8211 |    83 | msg  | 1571724978 |
| 8210 |    83 | msg  | 1570861659 |
| 8209 |    83 | msg  | 1570861656 |
| 8208 |    83 | msg  | 1570861650 |
| 8207 |    83 | ad   | 1570861643 |

UPD:基本上,我需要将选定的行切片,并在其上添加一个行广告。

最佳答案

我猜:

select *
from t
where created_at >= (select max(created_at) from t where type = 'ad')

但是,您没有指定仅在第一次遇到“ad”类型之前的含义 - 表格是否按created_at排序?或者id?是否会出现重复的 created_at 值?

关于mysql - SQL 分组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499400/

相关文章:

javascript - 为什么尽管查询找到记录,mysql数据却没有提取到表单中,查找值是否需要唯一?

MYSQL - 将最近匹配的记录从一个表连接到另一个表

regex - unix egrep 不匹配某个组

java - 根据偏好对一群人进行排序

php - Laravel: fatal error :远程数据库耗尽内存字节

mysql - 如何正确设置MySql数据库中具有类型点的字段的值?

MYSQL TripleDES 算法生成专有垃圾(没有密码理解它)

MySQL,Concat int 并保存到变量并使用带有 'IN' 或 'NOT IN' 的变量

sql - 2 列在一张表中有 2 个不同的条件

javascript - 如何使用 Underscore.js 从平面列表创建嵌套对象?