SQL

SQL

0
推荐
764
浏览

分类累计求和问题

题目描述:分数表(game)有字段:球队(team)、球员号码(no)、球员姓名(name)、得分分数(score)、得分时间(time)的一张总表问题:找出使各种球队反超的球员姓名和的得分时间题目来源:拼多多面试题:累计求和问题如...

方枪枪 发表了文章 • 2021-04-24 08:15

0
推荐
743
浏览

HIVE 注意格式

1.,concat(round(cast(finish_rate as decimal)*100,4),'%')  `累计完成率`       ------注意转化格式,concat(substr(finish_rate*100,1,4),'%') `累计完成率` VER...

DDlucky 发表了文章 • 2021-04-21 14:50

0
推荐
839
浏览

mysql的行号实现

select (@rowno := @rowno +1) as rownum , a.* from table a, (select @rowno :=0) b 1、@为自定义变量(@@为系统变量)2、:= 为赋值语句3、后半句代自定义一个变量rowno,并赋值为04、整句的意思为在原表的基础...

方枪枪 发表了文章 • 2021-04-18 11:08

0
推荐
917
浏览

窗口函数

1、窗口函数格式:<窗口函数> OVER ( PARTITION BY <用于分组得列> ORDER BY <用于排序的列> DESC)2、窗口函数:--专用窗口接口函数:RANK:1,2,3,3,3,6,7,8DENSE_RANK:1,2,3,3,3...

方枪枪 发表了文章 • 2021-04-11 17:21

0
推荐
944
浏览

LIMIT和 LIMIT OFFSET 的区别

1、LIMIT N,M从第N+1开始,取M个数如:LIMIT 5,2  表示:读取第6,7个数2、LIMIT N OFFSET M跳过前M个数,取之后的N个数如:LIMIT 5 OFFSET 1  表示:取第2-6条数据总结:LIMIT M,1  等价于 LIMIT...

方枪枪 发表了文章 • 2021-04-11 08:51

0
推荐
722
浏览

drop、truncate、delete区别

删除对象:drop会删除表数据和表结构,truncate删除表数据,delete+where删除指定行数据。应用范围:truncate仅应用于table,delete可应用于table和view,另外truncate也无法应用于参与了视图的表。是否记录事务...

方枪枪 发表了文章 • 2021-03-05 10:57

0
推荐
1234
浏览

SQL面试题目

1.写出分析代码答案:selectcase when a.order_num<=5 then '0-5'when a.order_num>=6 and  a.order_num<=10 then '6-10'when a.order_num>=11 and  a.order_num<=20 then '11-20'when ...

DDlucky 发表了文章 • 2020-08-15 16:47

0
推荐
930
浏览

SQL提高查询效率

1.如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行...

DDlucky 发表了文章 • 2020-06-16 09:00

4
推荐
1718
浏览

面向集合的思维编写SQL(第九篇 --- “我说的是:苹果柿子李子栗子梨的那个橘子啊”)

max:屏幕前的同学,这个时候还在天善智能看博文,肯定是单身狗吧...猿同学:520是什么鬼,我的世界只有1024...大家好,距离上篇(面向集合的思想编写SQL的第八篇)已经过去N多个月了...一直想给大家呈现一个体系...

Max_Leo 发表了文章 • 2020-05-20 21:50

0
推荐
1120
浏览

如何解决CSV打开乱码

原因:CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。解决办法:用记事本打开CSV文件----->文件------>另存为------>点编码------>选择ANSI----->保存,然后用excel打...

DDlucky 发表了文章 • 2020-05-14 10:55

0
推荐
1034
浏览

左连接 ,右连接,内连接和全外连接的4者区别

     做数据库开发或BI开发的经常会涉及到很多个表,那么各个表间的连接如何区分呢?总感觉这样的问题很简单,但是这些基本的问题在面试中经常会被问道,今天就总结一下这个问题,提醒自己和伙伴...

DDlucky 发表了文章 • 2020-04-16 16:27

0
推荐
914
浏览

索引失效的几种情况

1.类型不一致导致索引失效.由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效:错误的例子:select * from test where tu_mdn=13333333333;正确...

DDlucky 发表了文章 • 2020-04-16 16:05

2
推荐
1639
浏览

面向集合的思维编写SQL(8-行间数据比较)

早些时间写过一篇《Python与SQL对比实现:处理相邻记录的时间差》https://ask.hellobi.com/blog/Matthew112/15643面向的是工作中常见的一个业务场景:对基于时间顺序的业务数据集进行时间序列分析。现在我们有了...

Max_Leo 发表了文章 • 2020-02-11 12:09

0
推荐
1340
浏览

面向集合的思维编写SQL(7-量化万物的谓词-Exists)

1.什么是谓词何为SQL中的谓词,我们常见的比较(=,<,>)、between、like、in、is null、exist等都是谓词;我们可以将它看作一种特殊的函数,函数的返回值都是三值逻辑(true、false、unknow),用来判断“...

Max_Leo 发表了文章 • 2020-02-08 12:38

条新动态, 点击查看
梁勇

梁勇 回答了问题 • 2015-04-13 12:23 • 4 个回复 不感兴趣

sql优化

赞同来自:

日期字段建个聚集索引,其他的建立成组合索引的方式
日期字段建个聚集索引,其他的建立成组合索引的方式
BIWORK

BIWORK 回答了问题 • 2015-09-30 11:33 • 2 个回复 不感兴趣

sql datetime

赞同来自:

个人建议在提问之前先也动手写一下你自己认为正确的 SQL 代码或者你也进行过一些思考,哪怕有错都是可以的,大家都会帮助到你,简单的这种要 SQL 语句的方式不是非常可取。
个人建议在提问之前先也动手写一下你自己认为正确的 SQL 代码或者你也进行过一些思考,哪怕有错都是可以的,大家都会帮助到你,简单的这种要 SQL 语句的方式不是非常可取。
这个报错是内部错误。
换衣是两个服务器的配置不一致导致。建议报错的服务器重装cognos应用。
这个报错是内部错误。
换衣是两个服务器的配置不一致导致。建议报错的服务器重装cognos应用。
老头子

老头子 回答了问题 • 2015-10-19 11:58 • 2 个回复 不感兴趣

高分请教这个SQL语句为什么会运行很久?

赞同来自:

按照你的描述
-----

表NAMETABLE里面有2万条符合“NUM = 2”的记录。但是如果NAMETABLE里的记录减少到300条的话就可以查询出数据。或者把A.NUM = 2去掉也可以得出数据。

-----
初步猜测是NUM字段是有索引的,但是... 显示全部 »
按照你的描述
-----

表NAMETABLE里面有2万条符合“NUM = 2”的记录。但是如果NAMETABLE里的记录减少到300条的话就可以查询出数据。或者把A.NUM = 2去掉也可以得出数据。

-----
初步猜测是NUM字段是有索引的,但是由于错误的统计信息导致索引评估失败,尝试加上下面这个hint再执行试试,如果不行建议你把执行计划发出来。
select /*+ full(A)*/
H.RENO, B.NAME, H.RBNO, H.ENO, A.NAME, H.BNO
  from HTABLE H
  join NAMETABLE A
    on (A.NUM = 2 and H.ENO = A.ENO and H.RENO <> A.ENO)
  join NAMETABLE B
    ON (H.RENO = B.ENO)
 ORDER BY H.RENO, H.RBNO
 
 
老头子

老头子 回答了问题 • 2015-10-19 11:49 • 2 个回复 不感兴趣

请教关于B树索引的层次问题

赞同来自:

blevel = 索引高度 - 根节点
所以当你的索引blevel = 1的时候就说明有一个根节点和一个叶子节点
 
其实分支节点和叶子节点没有一定要有哪一个,原理上是一样的,只不过叶子节点下没有其他分支,所以称为叶子节点。当有其他分支时称为分支节点。
 
就... 显示全部 »
blevel = 索引高度 - 根节点
所以当你的索引blevel = 1的时候就说明有一个根节点和一个叶子节点
 
其实分支节点和叶子节点没有一定要有哪一个,原理上是一样的,只不过叶子节点下没有其他分支,所以称为叶子节点。当有其他分支时称为分支节点。
 
就像当你有儿子了你就是爸爸了,没儿子的时候你是你爸爸的儿子。
悟

回答了问题 • 2015-10-22 16:43 • 4 个回复 不感兴趣

mssql存储过程中同比问题

赞同来自:

with tmp as
(
select 21 as num1,201503 as ym, 1 as sort
union all
select 3 as num1,201509 as ym, 1 as sort
union all
select ... 显示全部 »
with tmp as
(
select 21 as num1,201503 as ym, 1 as sort
union all
select 3 as num1,201509 as ym, 1 as sort
union all
select 6 as num1,201510 as ym, 1 as sort
union all
select 7 as num1,201403 as ym, 2 as sort
union all
select 21 as num1,201405 as ym, 2 as sort
union all
select 2 as num1,201409 as ym, 2 as sort
union all
select 4 as num1,201410 as ym, 2 as sort
)
select t1.ym,t1.num1,t2.num1, cast((t1.num1 - t2.num1) * 1.0 / t2.num1 as decimal(18,2)) as rate
from tmp t1
left join tmp t2 on t1.ym = t2.ym + 100
gogodiy

gogodiy 回答了问题 • 2015-10-29 12:02 • 1 个回复 不感兴趣

SQL 面试题

赞同来自:

1.MSSQL2008及以上版本:
在CTE里面使用ROW_NUMBER() OVER()函数构建一个排序字段,然后直接BETWEEN AND即可。
2.创建临时表,设置一个自增字段,导入结果集,然后使用BETWEEN AND即可。
3.还有嵌套TOP查询,这... 显示全部 »
1.MSSQL2008及以上版本:
在CTE里面使用ROW_NUMBER() OVER()函数构建一个排序字段,然后直接BETWEEN AND即可。
2.创建临时表,设置一个自增字段,导入结果集,然后使用BETWEEN AND即可。
3.还有嵌套TOP查询,这个效率不高,不推荐。
gogodiy

gogodiy 回答了问题 • 2015-11-26 10:49 • 3 个回复 不感兴趣

sql如何像excel一样绝对匹配,然后完成替换?

赞同来自:

[code]create table dbo.#t1
(
col varchar(50)
);

insert into dbo.#t1
(
col
)
values ('10'),('10_20'),('1010'),('101012');

selec... 显示全部 »
[code]create table dbo.#t1
(
col varchar(50)
);

insert into dbo.#t1
(
col
)
values ('10'),('10_20'),('1010'),('101012');

select *
from dbo.#t1 with(nolock);

select *
from dbo.#t1 with(nolock)
where patindex('%[^0-9]'+'10'+' %',','+col+',')>0

结果:
col
10
10_20
 思路是这样的,按照你的要求,10边上不应该有其他数字,那么只要[^0-9]就是非数字,为了判断,人为在字段前后加了逗号。
感谢大家的帮忙啊。
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITIO... 显示全部 »
感谢大家的帮忙啊。
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITION BY zyh ORDER BY zyh) rn
FROM t) tt
GROUP BY tt.zyh;
你确认下,你复制代码的时候,下面语言栏,选的是否是 EN (英语(英国)) 。如果是的话,在复制代码之前将其换成中文(简体)
 

14055
 
你确认下,你复制代码的时候,下面语言栏,选的是否是 EN (英语(英国)) 。如果是的话,在复制代码之前将其换成中文(简体)
 

14055
 
悟

回答了问题 • 2016-04-08 10:34 • 3 个回复 不感兴趣

小白,第一提问,求助SQL如何实现,谢谢

赞同来自:

WITH tmp AS
(
SELECT COUNT(Name) OVER(PARTITION BY Name ORDER BY Name) tn,*
FROM StudentInfo
)
SELECT * FROM tmp WHERE tn > 4 ... 显示全部 »
WITH tmp AS
(
SELECT COUNT(Name) OVER(PARTITION BY Name ORDER BY Name) tn,*
FROM StudentInfo
)
SELECT * FROM tmp WHERE tn > 4 利用Over函数还是很容易实现的
悟

回答了问题 • 2016-05-26 09:47 • 2 个回复 不感兴趣

SQL 面试题 XML PATH

赞同来自:

[code]
SELECT ID, Name = REPLACE(STUFF(
(SELECT ' '+Name
FROM [dbo].[a] AS a2
... 显示全部 »
[code]
SELECT ID, Name = REPLACE(STUFF(
(SELECT ' '+Name
FROM [dbo].[a] AS a2
WHERE a2.ID = a.ID
ORDER BY ID
FOR XML PATH('')
)
,1,1,''),' ','')
FROM [dbo]. AS a
GROUP BY ID
ORDER BY ID; 最简单的办法是再加个Replace函数
join on 不可以使用case when 不过你可以变向来做 
比如
on (t1.type = 1 and t1.id = t2.pid) or (t1.type = 2 and t1.pid = t2.ppid and t1.name = t2.na... 显示全部 »
join on 不可以使用case when 不过你可以变向来做 
比如
on (t1.type = 1 and t1.id = t2.pid) or (t1.type = 2 and t1.pid = t2.ppid and t1.name = t2.name) 但是这样做SQL的执行效率太差了。
规划求解是啥意思。。。  我不太懂。。 百度了下 没看明白 能举个栗子不
规划求解是啥意思。。。  我不太懂。。 百度了下 没看明白 能举个栗子不
这个不复杂吧,就是处理下结束 时间而已  结束时间等于 开始时间 + 分钟(结束时间-开始时间)*0.75
这个不复杂吧,就是处理下结束 时间而已  结束时间等于 开始时间 + 分钟(结束时间-开始时间)*0.75
0
投票
0
回答
1176
浏览
0
投票
1
回答
1852
浏览

如何评价sql

qjxiaopang 回复了问题 • 2017-03-02 22:41
0
投票
0
回答
1367
浏览
0
投票
2
已解决
1507
浏览

SQL 面试题 XML PATH

wenti 回复了问题 • 2016-05-26 10:09
0
投票
3
已解决
2064
浏览
0
投票
2
已解决
1961
浏览
0
投票
1
回答
1578
浏览
0
投票
5
已解决
3086
浏览
0
推荐
764
浏览

分类累计求和问题

题目描述:分数表(game)有字段:球队(team)、球员号码(no)、球员姓名(name)、得分分数(score)、得分时间(time)的一张总表问题:找出使各种球队反超的球员姓名和的得分时间题目来源:拼多多面试题:累计求和问题如...

方枪枪 发表了文章 • 2021-04-24 08:15

0
推荐
743
浏览

HIVE 注意格式

1.,concat(round(cast(finish_rate as decimal)*100,4),'%')  `累计完成率`       ------注意转化格式,concat(substr(finish_rate*100,1,4),'%') `累计完成率` VER...

DDlucky 发表了文章 • 2021-04-21 14:50

0
推荐
839
浏览

mysql的行号实现

select (@rowno := @rowno +1) as rownum , a.* from table a, (select @rowno :=0) b 1、@为自定义变量(@@为系统变量)2、:= 为赋值语句3、后半句代自定义一个变量rowno,并赋值为04、整句的意思为在原表的基础...

方枪枪 发表了文章 • 2021-04-18 11:08

0
推荐
917
浏览

窗口函数

1、窗口函数格式:<窗口函数> OVER ( PARTITION BY <用于分组得列> ORDER BY <用于排序的列> DESC)2、窗口函数:--专用窗口接口函数:RANK:1,2,3,3,3,6,7,8DENSE_RANK:1,2,3,3,3...

方枪枪 发表了文章 • 2021-04-11 17:21

0
推荐
944
浏览

LIMIT和 LIMIT OFFSET 的区别

1、LIMIT N,M从第N+1开始,取M个数如:LIMIT 5,2  表示:读取第6,7个数2、LIMIT N OFFSET M跳过前M个数,取之后的N个数如:LIMIT 5 OFFSET 1  表示:取第2-6条数据总结:LIMIT M,1  等价于 LIMIT...

方枪枪 发表了文章 • 2021-04-11 08:51

0
推荐
722
浏览

drop、truncate、delete区别

删除对象:drop会删除表数据和表结构,truncate删除表数据,delete+where删除指定行数据。应用范围:truncate仅应用于table,delete可应用于table和view,另外truncate也无法应用于参与了视图的表。是否记录事务...

方枪枪 发表了文章 • 2021-03-05 10:57

0
推荐
1234
浏览

SQL面试题目

1.写出分析代码答案:selectcase when a.order_num<=5 then '0-5'when a.order_num>=6 and  a.order_num<=10 then '6-10'when a.order_num>=11 and  a.order_num<=20 then '11-20'when ...

DDlucky 发表了文章 • 2020-08-15 16:47

0
推荐
930
浏览

SQL提高查询效率

1.如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行...

DDlucky 发表了文章 • 2020-06-16 09:00

4
推荐
1718
浏览

面向集合的思维编写SQL(第九篇 --- “我说的是:苹果柿子李子栗子梨的那个橘子啊”)

max:屏幕前的同学,这个时候还在天善智能看博文,肯定是单身狗吧...猿同学:520是什么鬼,我的世界只有1024...大家好,距离上篇(面向集合的思想编写SQL的第八篇)已经过去N多个月了...一直想给大家呈现一个体系...

Max_Leo 发表了文章 • 2020-05-20 21:50

0
推荐
1120
浏览

如何解决CSV打开乱码

原因:CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。解决办法:用记事本打开CSV文件----->文件------>另存为------>点编码------>选择ANSI----->保存,然后用excel打...

DDlucky 发表了文章 • 2020-05-14 10:55

0
推荐
1034
浏览

左连接 ,右连接,内连接和全外连接的4者区别

     做数据库开发或BI开发的经常会涉及到很多个表,那么各个表间的连接如何区分呢?总感觉这样的问题很简单,但是这些基本的问题在面试中经常会被问道,今天就总结一下这个问题,提醒自己和伙伴...

DDlucky 发表了文章 • 2020-04-16 16:27

0
推荐
914
浏览

索引失效的几种情况

1.类型不一致导致索引失效.由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效:错误的例子:select * from test where tu_mdn=13333333333;正确...

DDlucky 发表了文章 • 2020-04-16 16:05

2
推荐
1639
浏览

面向集合的思维编写SQL(8-行间数据比较)

早些时间写过一篇《Python与SQL对比实现:处理相邻记录的时间差》https://ask.hellobi.com/blog/Matthew112/15643面向的是工作中常见的一个业务场景:对基于时间顺序的业务数据集进行时间序列分析。现在我们有了...

Max_Leo 发表了文章 • 2020-02-11 12:09

0
推荐
1340
浏览

面向集合的思维编写SQL(7-量化万物的谓词-Exists)

1.什么是谓词何为SQL中的谓词,我们常见的比较(=,<,>)、between、like、in、is null、exist等都是谓词;我们可以将它看作一种特殊的函数,函数的返回值都是三值逻辑(true、false、unknow),用来判断“...

Max_Leo 发表了文章 • 2020-02-08 12:38

2
推荐
1993
浏览

面向集合的思维编写SQL(1-手动实现开窗函数)

第一部分:初试集合思维1.场景与需求我们有如下的一列价格数据,现在有这样一个需求,对其实现RANK()排序:2.SQL实现:我先展示代码:查询结果如下:3.SQL解读:现在返回头看代码,括号中的SQL是计算rank排名的核...

Max_Leo 发表了文章 • 2020-02-01 11:19