sql小技巧积累

YOLOv8结合GhostNet实现轻量化目标检测:模型设计与性能评测 GhostNet系列的核心是**“幽灵特征图(Ghost Feature Map)”** 概念:通过简单的线性变换(如深度卷积)生成“幽灵特征”,这些特征与原始特征融合后,能以极低的计算成本带来丰富的语义信息。为了突出GhostNet系列的必要性,设计消融实验:分别测试“仅主卷积”“仅幽灵卷积”“GhostNet(主卷积+幽灵卷积)”三种方案的性能,用数据证明“幽灵特征”的不可替代性。简单来说,引入GhostNet系列的YOLOv8,既能体现你的技术深度,又能让毕设的“落地性”大幅提升。 阅读详情

 

 

******************************************

计算日期差

字符串截取

示例1:

SELECT
	d.customer_id,
	d.traffic_id,
	d.activity_id,
	d.visit_start_time AS last_visit_time,
	DATEDIFF ( '2018-04-19', substr( d.visit_start_time, 0, 10 ) ) AS last_visit_interval,
	'2018-04-19 00:00:00' 
FROM
	(
	SELECT
		* 
	FROM
		(
		SELECT
			a.customer_id,
			a.traffic_id,
			a.activity_id,
			a.visit_start_time,
			ROW_NUMBER ( ) OVER ( PARTITION BY a.customer_id, a.activity_id ORDER BY a.visit_start_time DESC ) AS num 
		FROM
			huntor_dw.customer_visit_record_detail_activity a 
		WHERE
			customer_id IS NOT NULL 
		) c 
	WHERE
		c.num = 1 UNION ALL
	SELECT
		* 
	FROM
		(
		SELECT
			b.customer_id,
			b.traffic_id,
			b.activity_id,
			b.visit_start_time,
			ROW_NUMBER ( ) OVER ( PARTITION BY b.traffic_id, b.activity_id ORDER BY b.visit_start_time DESC ) AS num 
		FROM
			huntor_dw.customer_visit_record_detail_activity b 
		WHERE
			customer_id IS NULL 
		) t 
	WHERE
	t.num = 1 
	) d;

 

 

1、DATEDIFF ( '2018-04-19', substr( d.visit_start_time, 0, 10 ) )算日期差

2、 substr( d.visit_start_time, 0, 10 )截取字符串

 

 

*******************************************************

 

示例2:

将文件中的数据插入hive表中:

LOAD DATA LOCAL INPATH '/data/groot/groot.txt' INTO TABLE huntor_trans.customer_life_cycle_trans partition (input_date = '2018-04-25');

 

有分区的加partition 。

groot.txt格式:与建表时分隔符有一定关系

NULL 1 1170505002713481 3 客户 2 高潜 2018-04-25 08:04:10 2018-04-25

NULL 1 1232143165254252 4 新购 3 客户 2018-04-25 08:04:55 2018-04-25

NULL 1 1141252152142341 NULL NULL 4 新购 2018-04-25 08:05:43 2018-04-25

 

**************************************************

 

sql查询、统计中 NULL的值替换

如,left join on 右侧null修改为0/修改null值

套上coalesce(a.open_count,0) 即可 或者 IFNULL( sum( t.final_amount ), 0.00 )

 

例:

SELECT
	e.source_id AS activity_id,
	e.NAME,
	e.type,
	e.start_at,
	e.end_at,
	e.STATUS,
	COALESCE ( a.open_count, 0 ) AS open_count,
	COALESCE ( b.share_count, 0 ) AS share_count,
	COALESCE ( c.awarded_count, 0 ) AS awarded_count,
	COALESCE ( d.received_count, 0 ) AS received_count 
FROM
	huntor_dw.dw_v_activities e
	LEFT JOIN ( SELECT activity_id, count( activity_id ) AS open_count FROM huntor_dw.dw_v_app_activity_card_gathering_records WHERE is_new = 1 AND created_at < '2018-03-16' AND created_at >= '2018-03-15' GROUP BY activity_id ) a ON e.source_id = a.activity_id
	LEFT JOIN (
	SELECT
		activity_id,
		count( activity_id ) AS share_count 
	FROM
		huntor_dw.dw_v_app_activity_card_gathering_details 
	WHERE
		is_new = 1 
		AND created_at < '2018-03-16' AND created_at >= '2018-03-15' 
		AND action_type = 2 
	GROUP BY
		activity_id 
	) b ON e.source_id = b.activity_id
	LEFT JOIN ( SELECT activity_id, count( activity_id ) AS awarded_count FROM huntor_dw.dw_v_app_activity_card_gathering_records WHERE is_new = 1 AND created_at < '2018-03-16' AND created_at >= '2018-03-15' GROUP BY activity_id ) c ON e.source_id = c.activity_id
	LEFT JOIN ( SELECT activity_id, count( activity_id ) AS received_count FROM huntor_dw.dw_v_app_activity_card_gathering_records WHERE is_new = 1 AND created_at < '2018-03-16' AND created_at >= '2018-03-15' GROUP BY activity_id ) d ON e.source_id = d.activity_id 
WHERE
	is_new = 1 
	AND e.start_at <= '2018-03-19' AND e.end_at >= '2018-03-19' 
	AND e.STATUS = 1 
	AND e.publish_status = 1;

 

 

1、coalesce的用法:coalesce是将返回传入的参数中第一个非null的值,比如 

   SELECT COALESCE(NULL, NULL, 1); 

-- Return 1 



SELECT COALESCE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); 

-- Return 1 

如果传入的参数所有都是null,则返回null,比如 

SELECT COALESCE(NULL, NULL, NULL, NULL); 

-- Return NULL 

 

  这个参数使用的场合为:假如某个字段默认是null,你想其返回的不是null,而是比如0或其他值,可以使用这个函数 

   SELECT COALESCE(field_name,0) as value from table;

2、MySQL IFNULL

MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数。

两个参数可以是文字值或表达式。

以下说明了IFNULL函数的语法:

 

SQL

如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。

IFNULL函数根据使用的上下文返回字符串或数字。

如果要返回基于TRUE或FALSE条件的值,而不是NULL,则应使用IF函数。

 

3、扩展   isnull,ifnull,nullif的用法如下:(转自:https://blog.youkuaiyun.com/sunwukong_hadoop/article/details/53692986)

isnull(expr) 的用法:
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。

mysql> select isnull(1+1);
-> 0
mysql> select isnull(1/0);
-> 1


使用= 的null 值对比通常是错误的。

isnull() 函数同 is null比较操作符具有一些相同的特性。请参见有关is null 的说明。

IFNULL(expr1,expr2)的用法:

假如expr1   不为   NULL,则   IFNULL()   的返回值为   expr1;
否则其返回值为   expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

mysql>   SELECT   IFNULL(1,0);
->   1
mysql>   SELECT   IFNULL(NULL,10);
->   10
mysql>   SELECT   IFNULL(1/0,10);
->   10
mysql>   SELECT
IFNULL(1/0,'yes');

->   'yes'

IFNULL(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、   REAL或
INTEGER。假设一个基于表达式的表的情况,     或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:
CREATE   TABLE   tmp   SELECT   IFNULL(1,'test')   AS   test;
在这个例子中,测试列的类型为   CHAR(4)。
NULLIF(expr1,expr2)  的用法:  
如果expr1
=   expr2     成立,那么返回值为NULL,否则返回值为   expr1。这和CASE   WHEN   expr1   =   expr2
THEN   NULL   ELSE   expr1   END相同。
 

mysql>   SELECT
NULLIF(1,1);

->   NULL
mysql>   SELECT   NULLIF(1,2);
->   1


如果参数不相等,则   MySQL   两次求得的值为     expr1   。

*********************************************************************

LOCATE(substr,str), LOCATE(substr,str,pos)

字段是否包含字符,字符在字符串中的位置

第一种语法返回字串符substr在字符串str第一个出现的位置。第二个语法返回串substr在字符串str,位置pos处开始第一次出现的位置。返回值为0,substr不在str.

 

case when条件语句

当满足某一条件时,执行某一result

CASE 
	WHEN CONDITION THEN result  
	WHEN CONDITION THEN result 
	WHEN CONDITION THEN result 
	ELSE result 
END

 

当colume 与condition 条件相等时结果为result

CASE colume 
	WHEN CONDITION THEN	result
	WHEN CONDITION THEN	result 
	WHEN CONDITION THEN	result
 ELSE result 
END

 

case when 自定义排序时的使用

根据 case when 新的 sort字段排序

CASE 
		WHEN t2.STATUS = 4 
		AND t2.expire_time > UNIX_TIMESTAMP( ) 
		AND t2.expire_time < UNIX_TIMESTAMP( DATE_ADD( NOW( ), INTERVAL 60 DAY ) ) THEN
			4 
			WHEN `status` = 2 THEN
			3 
			WHEN `status` = 3 THEN
			2 
			WHEN t2.STATUS = 4 
			AND t2.expire_time > UNIX_TIMESTAMP( DATE_ADD( NOW( ), INTERVAL 60 DAY ) ) 
			AND t2.expire_time < UNIX_TIMESTAMP( DATE_ADD( NOW( ), INTERVAL 1 YEAR ) ) THEN   
			1 
        ELSE 0 
	END sort$ QUERY -> orderBy ( 'sort desc ,t2.expire_time desc,t2.created_at desc' );

 

- 当满足某一条件时,执行某一result,把该结果赋值到new_column_name 字段中

case

when condition then result

when condition then result

when condition then result

else result

end new_column_name //end 后面加as new_colume_name

```

case when 用在select 语句中,新的字段new_column_name可以用来排序,但是不能用在where中

 

示例:

SELECT
	id,
	tenant_id,
CASE
		
		WHEN locate( '-', customer_id ) > 0 THEN
		NULL ELSE customer_id 
	END,
CASE
		
		WHEN locate( '-', customer_id ) > 0 THEN
		customer_id ELSE NULL 
	END,
	last_life_cycle_id,
	last_life_cycle_name,
	life_cycle_id,
	life_cycle_name,
	'2018-05-17 00:00:00',
	'2018-05-17' 
FROM
	huntor_trans.customer_life_cycle_trans 
WHERE
	input_date = '2018-05-17';

 

****************************************************************

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2023年GESP12月认证C++五级真题解析 例如,如果a=4,那么4是最⼩的幸运数,而1不是,但我们可以连续对1做3次+1操作,使其变为4,所以我们可以说,1幸运化后的结果是 4。【题目大意】给一个完全平方数的标准,推导出哪些是超级幸运数,然后判断N个数字中,哪些是超级幸运数,是的输出“lucky”,不是的输出离该数字最近的比它大的数字。前一个数字,下标是j的数字是偶数,后面的数字下标是j+1的是奇数,按照要求,偶数在奇数的后面,要交换。A函数时间复杂度是O(n/2),B函数算法是O(sqrt(n)),大部分情况后者是优的,值更小。 阅读详情

相关推荐

西门子V90 PN伺服控制核心:FB284功能块详解与实战

在工业自动化中,伺服定位控制是运动控制的基础环节,其本质是PLC通过PROFINET协议与伺服驱动器实现高速、确定性数据交互。FB284作为西门子为V90 PN定制的标准化功能块,封装了GSD映射、状态机管理与周期性PDO同步机制,将底层寄存器操作抽象为高可靠调用接口。相比MOVE指令或MC_MoveAbsolute等通用方案,FB284显著降低时序错乱风险,提升多轴同步精度与故障响应能力。它广泛应用于包装、灌装、装配等中端产线,尤其适配S7-1200/1500平台下的快速部署与现场维护。本文聚焦V90 P

weixin_42696271的博客 300

常见sql操作

1、 select '`'||b.mrchno 商户号, b.name 商户名称, b.contact3 注册地址联系人, '`'||b.telno1 邮寄地址联系电话, a.MRCHT_NAME X商户名称, a.ADDRESS 商户联系地址, a.ADD_DATE 增加时间, ...

weixin_38168322的博客 238

手机拍照对焦快准狠的秘密:一文看懂PDAF、Dual Pixel和Super PD的区别

本文深入解析手机拍照中的三种主流相位检测自动对焦(PDAF)技术:Shield Pixel、Super PD和Dual Pixel。通过对比它们的原理、优缺点及实际表现,帮助读者理解不同技术的对焦速度、暗光表现和画质影响,从而做出更明智的购机选择。

weixin_26985923的博客 488

关于操作DATE数据类型时的注意事项以及ORACLE它真的很严格啊

1. 首先是对于DATE数据类型进行操作的注意事项,这是我在操作代码的时候发现的问题,如果你的表在定义的时候存在一个DATE类型的数据,那么如果你使用的是MYSQL的数据库,在插入数据的时候,直接用单引号把日期括住就行了,但是如果你使用的是ORACLE数据库,那么当你在插入数据的时候,需要使用to_date函数对日期进行处理,然后在进行插入,下面给出示例 当对MYSQL数据库进行操作时: C...

巴塞罗那的风的专栏 715

C#:WPF格式转Winform格式

WPF格式转Winform格式

Hello C++ 1295

Ubuntu系统下STM32开发环境搭建:从零配置CubeMX、VSCode与OpenOCD调试实战

本文详细介绍了在Ubuntu系统下搭建STM32开发环境的完整流程,包括CubeMX、VSCode和OpenOCD的安装配置。通过实战教程指导开发者从基础环境准备到工程创建与调试,提供高效的嵌入式开发解决方案,并分享常见问题解决方法。

potato的博客 941

SQL在线编程练习(08-02)【1】

Date: 2019-08-02 1.创建一个actor表,包含如下列信息 列表 类型 是否为NULL 含义 actor_id smallint(5) not null 主键id first_name varchar(45) not null 名字 last_name varchar(45) not null ...

Jasminexjf的博客 763

Android Audio - 支持多应用同时录音_Android8.1修改方法

支持多应用同时录音_Android8.1修改方法 源码路径: sdk\frameworks\av\services\audiopolicy\managerdefault\AudioPolicyManager.cpp 需要修改两个位置: audio_io_handle_t AudioPolicyManager::getInputForDevice() 在mpClientInterface-&gt...

iFinelio Tower 的博客 5758

sql left join order by 排序遇到null值排序混乱问题

sql中left join 后难免会出现null,如果正好用此列进行排序,会发现,null一直在负数的后边, 比如有2、4、30、-3、-13、null、null、null desc时,显示的顺序为 30、4、2、 -3、 -13、null 、null、null,明显不是我想要的,其实,null是想做0用的, 此时需要在order by 里判断是否为null,如果是就替换成0就行了,写法如下

云上人间钦自赏 4104

Streamlit安装避坑指南:从零到一键启动你的第一个数据可视化应用

本文提供了一份详尽的Streamlit安装避坑指南,帮助用户从零开始快速启动第一个数据可视化应用。文章深入剖析了安装过程中常见的网络超时、依赖冲突、环境变量缺失等核心问题,并给出了使用虚拟环境、配置国内镜像源、利用.whl文件离线安装等多种经过验证的解决方案,确保安装过程顺畅无阻。

weixin_29065015的博客 614

BLDC方波控制 vs. FOC:技术选型指南与未来演进

本文深入对比BLDC电机方波控制与FOC技术的核心差异,分析两者在成本、性能和应用场景上的权衡。方波控制凭借低成本和易实现性,在电动工具和家电领域优势明显;而FOC则以平滑高效控制见长,适用于高端精密应用。文章为工程师提供了实用的技术选型指南,并展望了未来技术融合的发展趋势。

yhn4567890的博客 1172

sql null值替换0_SQL学习笔记

警告⚠️:这是一份只有自己能看懂的学习笔记。。。SQL=Structured Query Language1.字段为null不代表为‘’或0,避免允许为null2.关系表,任意两条记录不能重复,能够通过某个字段唯一区分出不同的记录,这个字段被称为主键。3.主键的要求:不要修改,不使用任何业务相关的字段作为主键,id。4.外键,外键约束会降低数据库的性能。5.多对多,通过中间表,可以定义一个“多对多...

weixin_39607873的博客 1504

Python爬虫教程:抓取区块链交易信息及加密货币市场数据

随着区块链技术和加密货币的迅猛发展,区块链交易和加密货币市场的数据逐渐成为金融、技术、经济研究等领域的热点。对于开发者和研究者而言,实时获取区块链交易数据和加密货币市场行情,对于投资分析、市场预测、技术研究等具有重要的参考价值。本文将通过Python爬虫技术,介绍如何抓取区块链交易信息及加密货币市场数据,详细阐述数据获取的原理、技术方案、实现方法以及抓取到的数据的存储与分析。我们将依托最新的爬虫技术,如requestsSeleniumScrapy,以及相关的数据处理库(如pandasmatplotlib。

2201_76125261的博客 2777

关于SQL优化小技巧积累

1)使用inner join 代替 IN 2)left join 关联字段类型匹配保持一致

u012129031的专栏 166

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

红队小技巧

本机的wifi密码(撞密码),本机浏览器的书签,保存的密码(这个很好破解,比如内网历史记录访问过一个192.168.7.15/admin.aspx这个网站,我们查看他的密码需要Pin,我们直接点进去这个网站,然后f12把hidden改成txt即可),cookie(因为有些要IP认证,所以用cookie),RDP的凭证,public\document这个位置,如果运气好或许Mimikatz可以破解出来,不过我们当我们不在域环境的时候可以查看连接的IP帮我们更好的定位其他机器的位置。

2401_88750741的博客 452

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

oracle 传入参选择展示哪个字段_“数苗训练营”优秀团队展示

“数苗训练营”优秀团队风采展示数据分析师“数苗训练营”的培训活动于上周正式结束,但奋斗的激情不会消失,荣誉的光泽也不会褪色,接下来将为大家介绍总行与分行各个优秀团队,让我们来一睹他们的风采!—— 总行部分 ——农户金融部团队农户金融部同事想与大家分享的是他们对于建模环节的感悟。“在参与数苗训练营之前,我是大略知道一些数据分析的工具和方法的。”这位学员表示,研究生生涯中不乏需要记录、分析被...

weixin_39639049的博客 358

SQL server积累

这是对sqlserver的一些积累待补充。

weixin_42206931的博客 2579

SQL的积累

SQL的积累学习(不常用的经常会忘记,所以以后用到的就会记在下面): --新增字段alter table t_Student add Test varchar(200)--删除字段alter table t_Student drop COLUMN Test--修改字段类型alter TABLE t_Student alter column Test VARCHAR(100)--修改字段名称ex...

weixin_30949361的博客 81

积累一些SQL

最近在接触学习MySQL、SQL Server相关的,碰到一些SQL的写法,记录一下,积累起来。1. SQL Server中可以使用WITH语法,而且其中可以使用自定义的变量,可以是个常数...

bisal的专栏 425

【java学习积累】SQL语句积累

最近笔者在学习数据库的相关知识,但是最基础的SQL语句还是要好好总结一下的。本文主要是记录SQL语句的相关知识。 一、SQL语句分类 1、DDL (数据定义语句)–数据定义语言 - Data Definition Language –用来定义数据库的对象,如数据表、视图、索引等 2、DML (数据操纵语句)–数据处理语言 - Data Manipulation Language –...

xiangzaixiansheng的博客 387

【SQL】SQL语句积累

文章目录SQL函数1.CONCAT()函数:用于拼接需要输出结果(注意中文需要用''包住)2.ROUND()函数:用于把数值字段舍入为指定的小数位数实际案例1.通过SQL计算出某列数据所占总和百分比 SQL函数 1.CONCAT()函数:用于拼接需要输出结果(注意中文需要用’'包住) 例:结果集中,name=胡聪 age=23 性别=男,想要输出diy字段 SELECT su.name ,su.a...

Robin_hc的博客 561

SQL学习积累

在上述示例中,使用PARTITION BY子句将查询结果按照部门进行分区,并使用SUM()函数计算每个部门的总销售额。窗口函数通常与OVER子句一起使用,OVER子句用于定义窗口函数的操作范围,可以指定分区和排序规则。通过使用窗口函数,可以在查询结果中进行更灵活和复杂的计算,而不仅仅是对整个结果集进行计算。然后,使用LAG()函数配合OVER子句获取前一天的销售额,并将当前行的销售额减去前一天的销售额,计算得到销售额的差值。窗口函数是一种特殊的函数,可以在查询结果的特定窗口或分区上进行计算。

if_i_were_a_boy的博客 798

SQL 常用语句积累

SQL常用语句积累: 一、SQL基本语句 SQL分类: DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) DQL—数据查询语言(select) 首先,...

随风而逝的博客 377

SQL积累

第一题 思路: 1.新建表Ta和Tb,统计出不同平台间品牌A和品牌B的销售额 2.连接表Ta和Tb,计算出销售差距 select '平台',(Tb.B1 - Ta.A1) as '销售差距(B-A)' from (select sum(销售额) as 'A1' from Sales where '品牌’'= A group by '平台' ) as Ta , (select sum(销售...

weixin_40801364的博客 182

SQL语句积累

SQL 常用语句积累: 一、 SQL 基本语句 SQL 分类: DDL —数据定义语言 (Create , Alter , Drop , DECLARE) DML —数据操纵语言 (Select , Delete , Update , Insert) DCL —数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK)  

u012770189的专栏 378

SQL 语句积累

最近在复习软考知识,在SQL数据库这一章,视频中讲了很多SQL语句。大部分都很熟悉,但是具体些的时候又会出错,还是写的少。下面,我一遍看,一遍尝试着自己写,再次复习了一遍。 接下来是以机房合作中的userInfo表为例,复习一下简答的sql语句。 一 一、查找某个范围内的数。 两种方法,用Between...and语句和简单的连接的大于小于语句。 select * from T_us

遇见未知的自己 968

SQL 细节知识积累

Transact_sql:  TRUNCATE TABLE test   //用于删除test表中的数据  CREATE FUNCTION        //创建用户自定义函数  ALTER FUNCTION         //语句修改  DROP FUNCTION          //除去用户定义函数  CREATE UNIQUE CLUSTERED INDEX client_id ON c

★(ChengKing)【夜战鹰】【产品级性能调优与故障诊断分析】★ 5207
上一篇: sqoop导入hive数据时对换行等特殊字符处理
下一篇: wps office 使用积累 WPS 2016表格怎么自动适应行高列宽
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值