现有一个数据表,需要获取同一个用户,number 累计达到大于等于 10 的那一条数据,也就是第 6 行和第 10 行。
大佬们这个 sql 怎么写。
现有一个数据表,需要获取同一个用户,number 累计达到大于等于 10 的那一条数据,也就是第 6 行和第 10 行。
大佬们这个 sql 怎么写。
我在本地模拟了一下,借助窗口函数可以轻松解决。(注意,MySQL 8.0 以后的版本才支持这一特性)
select distinct r.user_id,
first_value(r.number) over (partition by r.user_id) as number
from (
select c.user_id,
c.number,
sum(c.number) over (partition by c.user_id rows unbounded preceding) AS f
from (
select 1 as user_id, 1 as number
union all
select 1 as user_id, 2 as number
union all
select 1 as user_id, 2 as number
union all
select 1 as user_id, 4 as number
union all
select 1 as user_id, 7 as number
union all
select 1 as user_id, 2 as number
union all
select 2 as user_id, 1 as number
union all
select 2 as user_id, 8 as number
union all
select 2 as user_id, 3 as number
union all
select 2 as user_id, 6 as number
) c
group by c.user_id, c.number
) r
where r.f >= 10
group by r.user_id, r.number;
id | user_id | number |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 2 |
4 | 1 | 4 |
5 | 1 | 7 |
6 | 1 | 2 |
7 | 2 | 1 |
8 | 2 | 3 |
9 | 2 | 8 |
10 | 2 | 6 |
SELECT
*
FROM
(
SELECT
c.id,
c.user_id,
c.number,
sum( c.number ) over ( PARTITION BY c.user_id rows unbounded preceding ) AS f
FROM
user001 c
) r
WHERE
r.f >= 10
GROUP BY
r.user_id
ORDER BY
r.id;
结果:
这个项目是一个外包,在之前的开发基础上加一下功能,然后他们那边有个 review 代码的,然后每次提交他都会讲代码风格必须不一致,然后又把我们做的功能又改一遍
Quicker 您的指尖工具箱!操作更少,收获更多!
锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。
Communication channel for makers and users.
CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。
SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
即用的 Vim-IDE。
Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。
沉迷游戏伤身,强撸灰飞烟灭。
IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。
找到自己的位置,萌新烦恼少。
汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。
主仓库地址:Hi-Windom/Sillot
文档地址:sillot.db.sc.cn
注意事项:
记录并分享人生的经历。
Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。
HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!
Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。
单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
你比 99% 的人都优秀么?
NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。
jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。