mysql
棒棒糖one
初来乍到,请多关照
展开
-
hive查找字符出现的位置find_in_set和locate 函数
问题场景查找Face这个标签在image_labels字段中出现的位置。尝试了2个函数,find_in_set和locate 函数,如下所示select feed_id,db_time, user_id,image_labels, find_in_set('Face',image_labels) as a, locate('Face',image_labels) as b from gravity.ods_gravity_items_hourly where d_s be原创 2022-05-06 12:23:31 · 6930 阅读 · 0 评论 -
Sql优化
查询语句中不要使用*尽量减少子查询,采用关联查询(inner join、left Join等)减少使用 in , not in ,使用exists, not exists 或关联语句替代where子句中尽量避免使用or 来连接,若一个字段有索引,一个没有索引,则会使引擎放弃使用索引而进行全表扫描,尽量用union 或union all 进行替代(在确认没有重复数据或不用删除时,使用union all 更好一点)增加中间表,尽量不要在查询的时候进行统计尽量避免在where字句中对字段进行null值.原创 2021-03-29 11:26:51 · 182 阅读 · 1 评论 -
提取出所有用户每两次访问之间的平均时间间隔
题目:根据要求写出SQL用户登录表(login)结构如下:uid(用户的id,字符型)login_date(用户访问日期)要求:提取出所有用户每两次访问之间的平均时间间隔。...原创 2020-12-09 17:49:24 · 1202 阅读 · 0 评论 -
hive中的lateral view explode函数
原文链接:https://blog.csdn.net/helloxiaozhe/article/details/102627647hive> select * from explode_lateral_view;OKa:shandong,b:beijing,c:hebei 1,2,3,4,5,6,7,8,9 [{"source":"7fresh","monthSales":4900,"userCount":1900,"score":"9.9"},{"source":"jd","mon原创 2020-07-03 11:06:35 · 1794 阅读 · 0 评论 -
窗口函数三种排序
排序窗口函数dense_rank() over(order by Score desc) as 'Rank' rank() over(order by Score desc) as 'Rank'row_number() over(order by Score desc) as 'Rank'dense_rank()函数可以将排序按自上往下排,相同分数并列第一,下一个分数就是第二,不跳跃;则两个分数排名(Rank)相同。平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”原创 2020-06-01 10:26:47 · 2179 阅读 · 0 评论 -
SQL窗口函数实现累加求功能
1、语法:sum(字段1) over(partition by 字段2 order by 字段3 rows between unbounded preceding and current row) as 新字段名2、功能:实现组内累加3、实例:表sheet1,内容如下:先对表中每人每月的收入求和: select name,mon,sum(amount) as tota_amount...原创 2020-03-22 19:40:29 · 17826 阅读 · 0 评论 -
SQL中的时间函数
1、常用:year()、month()、day()、minute()、second()、分别取日期的对应部分curdate()——2020-3-22 取当前日期curtime()——22:47:37 取当前时间weekofyear()当前时刻是全年中的第几周dayofweek() 当天是一周内的周几2、格式转换:(1)、date_format函数date_format(“201...原创 2020-03-22 16:30:48 · 1302 阅读 · 0 评论 -
分别使用SQL、R和python将宽数据和长数据互相转换
在进行数据处理时,通常需要对表的格式进行调整,将长表转换成宽表,或将宽表转换成长表,那么在这里总结下集中常用工具来进行表格式转换的方法。一、什么是长数据和宽数据?长数据表格式如下:宽数据表格式如下:二、使用mysql 进行转换SELECT student,MAX(CASE subject WHEN '语文' THEN score END) AS '语文',MAX(CASE sub...原创 2020-03-17 23:37:51 · 2451 阅读 · 0 评论 -
统计mysql中学科引用表中学科引用次数
将学科相互引用表中的数据,统计出来,做成学科引用次数的矩阵table2格式如下:字段re_sub即引文所在学科,ar_sb即文章所在学科,有这两个字段即可计算学科引用次数,并将其填充到Excel表格中,做成矩阵形式import pymysql.cursorsimport logginglogging.basicConfig(filename='log.log', ...原创 2019-07-12 15:37:00 · 218 阅读 · 0 评论 -
学科引用表
要将article的学科和reference的学科做全连接,如下:article表reference表article与reference关联表还有一个是journal对应的subject表好,四张表全部都在这了,现在要做出一张学科之间相互引用的表第一步:将article和reference表分别和journal_subject表做内连接,得到两张新表(SELECT t.ar...原创 2019-07-12 15:28:54 · 252 阅读 · 0 评论 -
查询各部门最高薪水
面试遇到一个题,如下所示:给出每个部门员工薪水最高的员工信息emp_no, dept_no, salary表1:dept_empemp_no员工编号dept_no部门编号from_dateto_date表2:salariesemp_no员工编号salary薪水from_dateto_date...原创 2019-06-24 21:48:04 · 3970 阅读 · 0 评论 -
列转行关联矩阵
将a表中的数据转换成b表的格式表a表b1、sum函数法SELECT arsubject, SUM( CASE resubject WHEN 'A' THEN 1 ELSE 0 END) AS A, SUM( CASE resubject WHEN 'B' THEN 1 ELSE 0 END) AS B ,SUM( CASE resubject WHEN 'C' THEN 1 EL...原创 2019-06-17 23:05:09 · 284 阅读 · 0 评论 -
MySQL基础语法
一、修改表ALTER1、改表名ALTER TABLE table_name RENAME new_tableName2、改字段类型ALTER TABLE table_name MODIFY <字段名> <数据类型>3、改字段名ALTER TABLE table_name CHANGE <旧字段名> <新字段名> <新字段数据类型...原创 2019-05-23 18:53:24 · 116 阅读 · 0 评论 -
根据一张表来更新另一张表的方法
将表c中的journal_full_name用表s中的journal_full_name填充,根据相同的id方法一update c set c.journal_full_name=s.journal_full_namefrom reference_new_copy AS c,reference_new_some AS swhere c.id=s.id;此方法对版本有要求,未试验成...原创 2019-04-23 19:29:19 · 4812 阅读 · 0 评论 -
查询没有买单顾客的名字
查询不在order表中的# select Name as Customers from Customers# where Customers.Id not in (select CustomerId from Orders )将两张表左连接,显示CustomerId为空的名字# select Name as Customers from Customers# left join ...原创 2019-03-10 23:20:34 · 611 阅读 · 0 评论 -
MySQL中limit 和offset 的区别
selete * from testtable limit 2,1; selete * from testtable limit 2 offset 1;数据库数据计算是从0开始的limit 2,1表示从表testtable中第三条开始查询,取一条数据,即第三条数据读取,跳过第一二条后,取一条数据limit 2 offset 1表示从数据库中的第二条数据开始查询两条数据,即第二条和第三...原创 2019-03-14 23:41:35 · 1196 阅读 · 0 评论