mysql
永远在减肥永远110的的小潘
这个作者很懒,什么都没留下…
展开
-
Mysql-使用row_number() over()函数求每组的最低分
之前我写过不用函数求分组后每组销量前两名的方法,可以参考这一篇。这种方式会稍微复杂一些。Mysql-group by分组后取每组销量前两名刷牛客网后,发现可以使用row_number() over()函数快速查出每组的最低分。select device_id,university,gpafrom (select *,row_number() over (partition by university order by gpa) as rnfrom user_profile) as univ原创 2021-11-05 18:27:35 · 493 阅读 · 0 评论 -
Mysql-统计用户的次日留存率
刷牛客网上遇到的一题,看了讨论区的内容,现在把自己的理解记录下来。题目要求:解题思路:1.一个用户可能一天内存在多次答题记录,以device_id,date去重select distinct q.device_id,q.datefrom question_practice_detail q2.单个用户的次日留存率假设某用户11月1日答完题后,11月2日继续登录答题,11月3日也继续登录答题。那一共可以查到3条该用户的去重记录,其中11月2日、11月3日均是次日留存记录,这里我们的次日留原创 2021-11-03 23:23:24 · 1707 阅读 · 1 评论 -
Mysql-字符串分列后取指定位置的值
如何取出上表中的性别?首先我们想到用substring_index()来进行分列#错误示例substring_index(profile,",",4)#最后取出的不是我们想要的性别,而是整个profile字段,参数4代表从左往右前4个分列的值#正确示例substring_index(profile,",",-1)#最后参数-1,代表从右往左数第一个分列的值...原创 2021-11-03 22:58:17 · 292 阅读 · 0 评论 -
Msql-构造当日同比日期
##当期销售金额selectSUM(ls.sale_amount) from test_sale_amount lswhere ls.order_date>="2021/11/1"and ls.order_date<=CURDATE()##同比期销售金额select SUM(ls.sale_amount) from test_sale_amount lswhere ls.order_date>="2020/11/1"and ls.order_date<=c原创 2021-11-03 15:55:58 · 93 阅读 · 0 评论 -
Mysql-查询指定表中的所有字段名称
#db_name为数据库名称,table_name为表名称SELECT COLUMN_NAME FROM information_schema.COLUMNSWHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'table_name';information_schema,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),更新关于information_schema的信息可参考https://blog.csdn.net/p1306252/art原创 2021-10-14 18:30:41 · 1342 阅读 · 0 评论 -
Mysql-group by分组后取每组销量前两名
一、原表表头如下,现需要提取每月销量排名前两名的商家:列名注释order_date订单日期seller_name商家名称sale_amount销售金额二、SQL如下:SELECT * FROM (SELECT extract( YEAR_MONTH FROM ds.order_date ) date, ds.seller_name seller, sum( ds.sale_amount ) amount FROM table_name ds原创 2021-08-18 18:22:46 · 1751 阅读 · 0 评论 -
Mysql-查询表所属的库名称
SELECT table_schema FROM information_schema.TABLES WHERE table_name = 'StudentGrade';#StudentGrade为所要查询的表的名称运行后显示该表所属的库名称为“shuju”关于information_schema:information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。其中performance_schema 用于性能分析,而 inform原创 2021-08-18 16:40:43 · 888 阅读 · 0 评论 -
Mysql-使用substring_index()对数据进行截取分列
语法:substring_index(str,delim,count)str:要处理的字符串;delim:分隔符;count:截取计数项,如为2时,截取从左往右数第2个分割符左边全部内容,为-2时,截取从右往左数第2个分割符右边全部内容。例:select da.upc from table_name dawhere (da.order_date >= '2021/6/20' AND da.order_date <= '2021/6/26')查询出的结果如下:如原创 2021-06-30 16:22:40 · 744 阅读 · 0 评论 -
Mysql-使用case when对数据进行分类
select ps.order_date 日期,ps.sub_brand 品牌,ps.brand_cat 分类,ps.brand_sub_cat 子分类,ps.o2o_cat 到店到家,ps.o2o_format 业态,ps.province 省份,ps.city 城市,ps.upc 国条码,ps.product_name 商品名称,ps.seller_name 商家,ps.sku_code 物料码,ps.sku_id sku_id,ps.gmv gmv,ps.order_qu原创 2021-06-09 18:28:44 · 411 阅读 · 0 评论 -
Mysql-查询每月汇总金额
select extract(year_month from dy.order_date),sum(dy.sale_amount) from table_name dy group by extract(year_month from dy.order_date)结果如下:其中EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。##语法EXTRACT(unit FROM date)1.unit 为year_monthselect distinct extr原创 2021-06-02 11:32:57 · 1607 阅读 · 0 评论