Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >窗口函数

窗口函数
EN

Stack Overflow用户
提问于 2018-08-01 10:22:19
回答 2查看 1.3K关注 0票数 1

我想添加一个窗口函数。

min日期作为访问日期=Y,结束为Associd。

TableA

代码语言:javascript
运行
AI代码解释
复制
ID    Date      AssocId  Visit
 1     1/1/17    10101     Y
 1     1/2/17    10102     Y

最终结果。

代码语言:javascript
运行
AI代码解释
复制
ID    Date    AssocId
 1    1/1/17    10101

这给出了最小日期,但我需要与该日期相关联的AssocId。

代码语言:javascript
运行
AI代码解释
复制
 SELECT MIN(CASE WHEN A.VISIT = 'Y'
 THEN A.DATE END) OVER (PARTITION BY ID) 
 AS MIN_DT,
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-01 10:27:24

您可以使用FIRST_VALUE()

代码语言:javascript
运行
AI代码解释
复制
 SELECT MIN(CASE WHEN A.VISIT = 'Y' THEN A.DATE END) OVER (PARTITION BY ID)  AS MIN_DT,
        FIRST_VALUE(CASE WHEN A.VISIT = 'Y' THEN A.ASSOCID END) KEEP (DENSE_RANK FIRST OVER (PARTITION BY ID ORDER BY A.VISIT DESC, A.DATE ASC),

请注意,对于条件操作来说,这有点棘手。我更倾向于使用子查询来嵌套查询操作。外部的表述是:

代码语言:javascript
运行
AI代码解释
复制
SELECT MAX(CASE WHEN Date = MIN_DT THEN ASSOCID END) OVER (PARTITION BY ID)

如果您想在每个ID上都这样做,我建议:

代码语言:javascript
运行
AI代码解释
复制
select id, min(date),
       first_value(associd) over (partition by id order by date)
from t
where visit = 'Y'
group by id;

也就是说,使用聚合函数。

票数 1
EN

Stack Overflow用户

发布于 2018-08-01 10:24:20

你似乎想:

代码语言:javascript
运行
AI代码解释
复制
select t.*
from table t
where visit = 'Y' and
      date= (select min(t1.date) from table t1 where t1.id = t.id);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51639942

复制
相关文章
Hive窗口函数
Hive官网,点我就进 oracle,sqlserver都提供了窗口函数,但是在mysql5.5和5.6都没有提供窗口函数!
孙晨c
2020/10/10
1.1K0
HIVE窗口函数
窗口函数的应用场景http://yugouai.iteye.com/blog/1908121
努力在北京混出人样
2019/02/18
1.5K0
HIVE窗口函数
CSDN博客地址:https://mp.csdn.net/mdeditor/81067060
努力在北京混出人样
2018/07/16
1.2K0
SQL 窗口函数
以上是示例底表,共有 8 条数据,城市1、城市2 两个城市,下面各有地区1~4,每条数据都有该数据的人口数。
黄子毅
2022/04/18
1.6K0
SQL 窗口函数
SQL 窗口函数
MYSQL 从 8.0.2 版本起开始支持窗口函数,那么在窗口函数没出来之前,我们要实现类似的功能该怎么做呢?
白日梦想家
2020/07/18
7560
SQL 窗口函数
Hive窗口函数
Hive的窗口函数over( ),可以更加灵活的对一定范围内的数据进行操作和分析。
十里桃花舞丶
2022/05/10
3740
Hive窗口函数
Oracle SQL 基础:窗口函数(二)RANK函数如何使用窗口函数
我们可以看到使用RANK排位时遇到相同的排位的话,下个排位是有空位的,而DENSE_RANK是没有空位的。
SQLplusDB
2022/08/19
1.1K0
mysql窗口函数over中rows_MySQL窗口函数
窗口函数是OVER(),其中对应子句有PARTITION BY 以及 ORDER BY子句,所以形式有:
全栈程序员站长
2022/11/10
6K0
SQL窗口函数概述
在应用WHERE、GROUP by和HAVING子句之后,窗口函数对SELECT查询选择的行进行操作。
用户7741497
2022/03/27
2.4K1
hive 窗口分析函数
0: jdbc:hive2://localhost:10000> select * from t_access; ±---------------±--------------------------------±----------------------±-------------±-+ | t_access.ip | t_access.url | t_access.access_time | t_access.dt | ±---------------±--------------------------------±----------------------±-------------±-+ | 192.168.33.3 | http://www.edu360.cn/stu | 2017-08-04 15:30:20 | 20170804 | | 192.168.33.3 | http://www.edu360.cn/teach | 2017-08-04 15:35:20 | 20170804 | | 192.168.33.4 | http://www.edu360.cn/stu | 2017-08-04 15:30:20 | 20170804 | | 192.168.33.4 | http://www.edu360.cn/job | 2017-08-04 16:30:20 | 20170804 | | 192.168.33.5 | http://www.edu360.cn/job | 2017-08-04 15:40:20 | 20170804 | | 192.168.33.3 | http://www.edu360.cn/stu | 2017-08-05 15:30:20 | 20170805 | | 192.168.44.3 | http://www.edu360.cn/teach | 2017-08-05 15:35:20 | 20170805 | | 192.168.33.44 | http://www.edu360.cn/stu | 2017-08-05 15:30:20 | 20170805 | | 192.168.33.46 | http://www.edu360.cn/job | 2017-08-05 16:30:20 | 20170805 | | 192.168.33.55 | http://www.edu360.cn/job | 2017-08-05 15:40:20 | 20170805 | | 192.168.133.3 | http://www.edu360.cn/register | 2017-08-06 15:30:20 | 20170806 | | 192.168.111.3 | http://www.edu360.cn/register | 2017-08-06 15:35:20 | 20170806 | | 192.168.34.44 | http://www.edu360.cn/pay | 2017-08-06 15:30:20 | 20170806 | | 192.168.33.46 | http://www.edu360.cn/excersize | 2017-08-06 16:30:20 | 20170806 | | 192.168.33.55 | http://www.edu360.cn/job | 2017-08-06 15:40:20 | 20170806 | | 192.168.33.46 | http://www.edu360.cn/excersize | 2017-08-06 16:30:20 | 20170806 | | 192.168.33.25 | http://www.edu360.cn/job | 2017-08-06 15:40:20 | 20170806 | | 192.168.33.36 | http://www.edu360.cn/excersize | 2017-08-06 16:30:20 | 20170806 | | 192.168.33.55 | http://www.edu360.cn/j
曼路
2019/05/26
5460
SQL之窗口函数
窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。 绝大多数情况,sql语句处理数据是行为基本单位,一行一行的对数据操作。窗口函数则是可以对行数据进行分组,将多行数据分成一组,然后进行组间操作或者组内操作。
cultureSun
2023/05/18
3940
SQL之窗口函数
hive sql 窗口函数
1) 窗口函数 Lag, Lead, First_value,Last_value Lag, Lead、这两个函数为常用的窗口函数,可以返回上下数据行的数据. LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值, 与LAG相反 -- 组内排序后,向后或向前偏移 -- 如果省略掉第三个参数,默认为NULL,否则补上。
用户1217611
2020/06/19
1.2K0
hive sql 窗口函数
postgreSQL窗口函数总结
1、我们都知道在SQL中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的,但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数。
小徐
2020/02/16
2.8K0
postgreSQL窗口函数总结
什么是窗口函数?
引用维基百科,窗口函数能够使用一行或多行的值来返回每一行的值。使用窗口功能,不再需要自连接(self-join)来同时显示原始值和聚合值。
用户8949263
2022/05/23
1.1K0
什么是窗口函数?
mysql 窗口函数排序[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1.5K0
mysql 窗口函数排序[通俗易懂]
Flink sql 窗口函数
窗口函数Flink SQL支持基于无限大窗口的聚合(无需在SQL Query中,显式定义任何窗口)以及对一个特定的窗口的聚合。例如,需要统计在过去的1分钟内有多少用户点击了某个的网页,可以通过定义一个窗口来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。
小石头
2022/11/10
1.2K0
浅谈MySQL窗口函数
含义:窗口函数也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据进行实时分析处理。
用户7569543
2022/02/25
1.3K0
浅谈MySQL窗口函数
postgreSQL窗口函数总结
1、我们都知道在SQL中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的,但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数。
小徐
2020/02/25
2.8K0
点击加载更多

相似问题

窗口函数/聚合函数/中断窗口

20

javascript (函数(窗口){})(窗口)

38

Postgresql -窗口函数中的窗口函数

24

窗口对象、窗口函数和对象函数

21

窗口函数

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档