8查询进阶

ElasticSearch8.X查询DSL语法案例进阶实战 Query DSL主要由两部分组成:查询和过滤。查询部分:用于指定搜索条件和匹配规则。例如,可以使用match查询进行全文检索,term查询进行精确匹配,range查询进行范围匹配等。过滤部分:用于对查询结果进行进一步的筛选和过滤。与查询查询不同,过滤查询不会影响得分计算,只是对结果进行简单的筛选操作。fuzzy查询是Elasticsearch中提供的一种模糊匹配查询类型,用在搜索时容忍一些拼写错误或近似匹配使用fuzzy查询,可以根据指定的编辑距离(即词之间不同字符的数量)来模糊匹配查询词。 阅读详情

1.sum(case when c_id='01' then s_score else NULL end ) cid1,

加行记录为单列值,该新列和值

17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩(难)

-- 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩(难)

SELECT s_id,AVG(s_score) FROM score GROUP BY s_id ORDER BY AVG(s_score) DESC;#平均成绩从高到低显示所有学生的平均成绩

#sum作用加行记录

SELECT s_id,

sum(case when c_id='01' then s_score else NULL end ) cid1,

sum(case when c_id='02' then s_score else NULL end ) cid2,

sum(case when c_id='03' then s_score else NULL end ) cid3,

AVG(s_score) FROM score GROUP BY s_id ORDER BY AVG(s_score) DESC;

#sum作用加行记录

select student.s_id,

sum(case when c_id='01' then s_score else NULL end ) cid1,

sum(case when c_id='02' then s_score else NULL end ) cid2,

sum(case when c_id='03' then s_score else NULL end ) cid3,

avg(s_score) average

from student,score

where student.s_id=score.s_id

group by student.s_id

order by average desc;

select student.s_id,

(case when c_id='01' then s_score else NULL end ) cid1,

(case when c_id='02' then s_score else NULL end ) cid2,

(case when c_id='03' then s_score else NULL end ) cid3,

avg(s_score) average

from student,score

where student.s_id=score.s_id

group by student.s_id

order by average desc;

 

 2及格率等等sum(case when s_score>=60 then 1 else 0 end)/count(s_score) '及格率'

18、查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率

select score.c_id,course.c_name,max(s_score),min(s_score),avg(s_score),

sum(case when s_score>=60 then 1 else 0 end)/count(s_score) '及格率',

sum(case when s_score>=90 then 1 else 0 end)/count(s_score) '优秀率'

from score,course where score.c_id=course.c_id

group by score.c_id;

-- 按sid  查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率

SELECT score.s_id,MAX(s_score),MIN(s_score),AVG(s_score),

SUM(CASE WHEN s_score>=60 THEN 1 ELSE 0 END)/COUNT(s_id) "及格率",

SUM(CASE WHEN s_score>=90 THEN 1 ELSE 0 END)/COUNT(s_id) "优秀率"

FROM score,course WHERE score.c_id = course.c_id GROUP BY score.s_id;

 

3平均成绩名次

笛卡尔积cross join

SELECT * FROM course CROSS JOIN student

sum(case when s_score>0 then s_score else 0 end)/count(a.c_id)

空记录作为0运算

21、查询学生平均成绩及其名次

 row_number() over(order by savg desc) AS rank_cid

对savg字段标序号并查询出列值

#平均成绩按3门
SELECT s_name,s_id,savg,
row_number() over(order by savg desc) AS rank_cid FROM(
#平均成绩按所有课程
SELECT s_name,a.s_id,
sum(case when s_score>0 then s_score else 0 end)/count(a.c_id) AS savg
FROM (SELECT * FROM course CROSS JOIN student) AS a
LEFT JOIN score AS s ON a.c_id = s.c_id AND a.s_id = s.s_id
GROUP BY a.s_id 
) as b;

 SELECT s_id,AVG(s_score) FROM score GROUP BY s_id ORDER BY SUM(s_score) DESC; #总成绩下排名
SELECT s_id,AVG(s_score) FROM score GROUP BY s_id ORDER BY AVG(s_score)  DESC;#平均成绩下排名 有的两门

 -- 序号问题
#row_number 不重复123, rank 存在相同排名重复113, dense_rank 相同排名重复 112 

select s_id,c_id,s_score, 
row_number() over(order by s_score desc) rank_cid  #只给成绩标序号
from score ORDER BY s_score;

select s_id,c_id,s_score, 
rank() over(order by s_score desc) rank_cid  #只给成绩标序号
from score ORDER BY s_score;


select s_id,c_id,s_score, 
dense_rank() over(order by s_score desc) rank_cid  #只给成绩标序号
from score ORDER BY s_score;
 

 

 4分组排序partition by c_id

row_number() over(partition by c_id order by s_score desc) rank_cid

select s_id,c_id,s_score, 
row_number() over(partition by c_id order by s_score desc) rank_cid #按课程分组给序号
from score ORDER BY s_id;

select s_id,c_id,s_score, 
row_number() over(order by s_score desc) rank_cid  #只给成绩标序号
from score ORDER BY s_id;

5自连接

41、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩 (难)

SELECT  DISTINCT a.* FROM score a

INNER JOIN score b ON

a.s_id = b.s_id

AND a.c_id != b.c_id

AND a.s_score = b.s_score

6日期相关,年龄TIMESTAMPDIFF(year,b,n)

年龄:TIMESTAMPDIFF(year,s_birth,NOW()) age

SELECT YEAR("1990-01-01");
SELECT YEAR(NOW());
SELECT MONTH(NOW());#一年之内
SELECT WEEK(NOW());#一年之内

 7分段case when  then else写法

SELECT *,CASE

WHEN s_score<60 THEN "D[<60]"

WHEN s_score>=60  AND s_score<70  THEN "C[70-60]"

WHEN s_score>=70  AND s_score<85  THEN "B[85-70]"

WHEN s_score>=85  AND s_score<100  THEN "A[100-85]"

ELSE "不合法" END AS "成绩情况"

FROM(

分段可以解决union需要多个select语句情况

 8插入-进阶版

insert into tablename (cols)  select .....

可加union

字段对应,自增可略该字段

 insert into score values("10","10",90);

#除了自动增长的字段auto_increment
insert into teacher (t_name) SELECT s_name from student WHERE s_id="01";

 

SQL2000在Win10上安装完整指南:兼容模式、SP4补丁与远程连接配置 数据库兼容性是老系统迁移与运维中绕不开的难题。当历史遗留的SQL Server 2000遭遇全新的Windows 10环境,安装程序常因系统版本检测失败而拒绝运行,这背后是旧版安装程序与NT内核版本间的识别错位。通过兼容模式模拟旧系统环境、以管理员身份运行安装程序,并处理注册表挂起与杀毒软件干扰,即可突破基础安装障碍。安装后的SP4补丁与TCP/IP端口配置,则是保障服务稳定与远程连接的关键。这一技术路径广泛适用于制造企业MES、进销存系统及医院HIS等仍依赖老旧数据库的场景,为IT运维与数据迁移测试提供了 阅读详情

相关推荐

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 590

mysql中使用case when 和sum()配合统计

先知道一下常用语法:sum(case 属性名 when 属性值1 then 1 else 0 end),意思就是某个属性下为属性值1就加1个数量,否则就作0统计。 题目: 查询各科成绩最高分、最低分和平均分,以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率(及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90)。 要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列 select c.ci.

够浪 1万+

UReport2 报表设计器 在线表格

UReport2官网 一、UReport2报表设计器 UReport2是一个开源的可视化报表设计器,功能强大,操作简单,可以实现复杂的报表统计,有各种各样的导出和打印功能,支持导入Excel表格! 1、报表设计器 2、设计一个简单的用户列表展示 二、可编辑表格 扩展了layui的表格,支持多元化数据编辑(单选,多些、日期、下拉联动),开发简单、高效、便捷。有了它就可以轻松开发类似进销存系统的表格录入功能了,用户拿来即用! 三、主从表录......

ejinxian的专栏 2万+

sum(case when status=1 then 1 else 0 end)

以下有两张表,需要合并按投资额度倒序排序 SELECT time 时间, sum(case when score= "90" then 1 else 0 end) as 胜,sum(case when result = "负" then 1 else 0 end) as 负 from Student GROUP BY time; 简要说明: when score= “90” : 为判断条件, then 1 selse 0 end: 当以上判断条件成立,则为1; 而该语句是在sum中的,具有累加效果,

baidu_33217702的博客 6739

FISCO BCOS(八)——— 一键部署 WeBase

环境 版本 Java Oracle JDK 8 至 14 MySQL MySQL-5.6及以上 Python Python3.6及以上 PyMySQL 1、获取部署安装包: wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-deploy.zip 2、解压安装包: unzip webase-deploy.zip 3、进入目录: c...

林中有神君 3607

AutosarMCAL开发——基于TC3x系列时钟系统浅析

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 889

Mysql必练50题(第四天)

第十六题 检索"01"课程分数小于60,按分数降序排列的学生信息 select * from student where s_id in (select s_id from score where c_id = 1 and s_score < 60); 第十七题 select s.s_id,s.s_name, sum(case c_id when 1 then s_score else 0 end) as "语文", sum(case c_id when 2 then s_score else

ZYXGW的博客 576

【第1章>第9节】基于FPGA的图像开运算处理算法的Verilog实现

本文介绍了基于FPGA的开运算图像处理实现方法。主要内容包括:1)输入图像二值化处理,通过阈值将灰度图像转换为二值图像;2)数据缓存与窗口提取,使用寄存器数组缓存5行图像数据并构建5×5处理窗口;3)腐蚀运算逻辑,判断窗口内是否全为白色像素;4)膨胀运算逻辑,检测窗口内是否存在白色像素。最后给出了Verilog实现方案,通过级联腐蚀和膨胀模块完成开运算处理。该方法可用于FPGA图像处理算法开发。

MATLAB,verilog,python,opencv,tensorflow,caffe,C,C++ 315

mysql case when 和sum()组合统计

sum(case 属性名 when 属性值1 then 1 else 0 end),意思就是某个属性下为属性值1就加1个数量,否则就作0统计。这里的case when使用当达到条件时就给1,外面有个sum来加起来,如果外面没有sum没法计数,这样就可以获取总人数.

qq_35484657的博客 2376

深入URP之Shader篇5: SimpleLit Shader分析(1)

本篇开始分析simple lit shader。我们通过分析unlit shader了解了URP shader的结构,以及一些基础功能。而simple lit shader包含了更多的内容。本篇开始,就不会特别仔细的逐行去分析shader文件了,只会针对pass的功能中比较有意思且之前没看到过的内容进行分析。名字为的pass,它的Tags为: 根据URP的文档:说明这是一个前向渲染路径的pass,虽然URP(至少是10.8.1版本)还没有正式支持Deferred Rendering,但URP已经为它打了很多

聚焦游戏和图形引擎开发技术 1901

构建AI Agent驱动的智能健康管理系统

数据碎片化:健康数据分散在不同的设备和平台中,难以统一管理和分析。个性化不足:健康管理方案通常是通用的,难以根据个人的健康状况实时调整。用户参与度低:用户难以获得及时、个性化的健康建议,导致健康管理效果不佳。AI Agent是一个能够感知环境、采取行动以实现目标的智能实体。根据智能体的智能水平,可以分为简单反应式智能体和复杂适应式智能体。实时监测健康数据。获取个性化的健康建议。收到健康风险预警。

AI天才研究院 749

SQL函数大全及示例汇总

这里写自定义目录标题概述1、聚合函数2、转换函数3、日期函数4、数字函数5、字符串函数6、系统函数7、文本和图像函数 概述 SQL中包含以下七种类型的函数: 聚合函数:返回汇总值。 转型函数:将一种数据类型转换为另外一种。 日期函数:处理日期和时间。 数学函数:执行算术运算。 字符串函数:对字符串、二进制数据或表达式执行操作。 系统函数:从数据库返回在SQLSERVER中的值、对象或设置的特殊信...

netflu博客 9万+

【Proteus仿真】点亮小灯系列仿真——小灯闪烁/流水灯/交通灯

本文介绍了基于AT89C51单片机的LED控制案例,共包含5个实例:1)单个LED闪烁;2)共阳极流水灯;3)共阴极流水灯;4)花样流水灯;5)交通灯模拟。每个案例详细说明了电路原理图、接线方式和控制程序实现,其中重点讲解了PWM调光原理及其在LED控制中的应用。案例由简至繁,从基础I/O控制到复杂花样显示,最后实现交通灯逻辑控制,展示了单片机在LED控制中的典型应用方法。文中提供了完整的源代码,便于读者理解和实践。

XU157303764的博客 1884

【MySQL入门·查询进阶】8.8 分页查询

MySQL 提供了灵活且强大的分页查询功能,通过合理使用LIMIT和OFFSET子句以及优化查询性能,我们可以实现高效可靠的分页操作。然而,在实际应用中,我们还需要根据具体的数据集和需求选择合适的分页策略,并遵循最佳实践来确保查询的效率和准确性。通过不断监控和调优,我们可以进一步提高分页查询的性能和用户体验。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》《Python游戏开发实战讲解》《Python Web开发实战》

Python老吕的博客 1213

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

进阶8 子查询

class 87-99 子查询 /* 含义: (1)出现在其他语句中的select语句,称为子查询或内查询 (2)外部的查询语句,称为主查询或外查询 分类: 按子查询出现的位置: (1)select后面: 【了解即可】 仅仅支持标量子查询 (2)from后面: 支持表子查询 (3)where或having后面: ★★★★★ 支持标量子查询(单行单列) ★★★★★ 支持列子查询 (1列多行) ★★★★★ 支持行子查

qq_44647559的博客 292

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MySQL#进阶8:分页查询

#进阶8:分页查询 /* 应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by分组字段 having 分组后的筛选 order by 排序的字段】 limit [offset],size; offset要显示条目的起始索引(起始索引从0开始) size 要显示的条目个数 特点 1.limit语句放在查询语句

qq_42197919的博客 237

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

《DM 数据库 SQL 查询实战:从基础到进阶的 8 个实用场景》

本文总结了DM数据库SQL查询的核心操作,包含基础单表查询和进阶多表分析两大类。基础查询部分演示了全字段/指定字段查询、条件筛选和排序操作;进阶查询则介绍了多表关联、聚合计算和分组筛选。文章还提供了模糊查询、去重查询等实战技巧,并强调了查询性能优化的关键点:避免SELECT*、合理使用JOIN和建立索引。这些SQL语句可直接套用,适合数据库新手学习参考。

SXYYYXY的博客 751

【MySQL入门·查询进阶】8.1 别名

MySQL中的别名是一个强大而灵活的工具,它可以帮助我们编写更简洁、更清晰、更易于维护的查询语句。通过掌握别名的使用方法和最佳实践,我们可以更高效地处理复杂的数据库查询任务,并提升数据分析和处理的能力。无论是在日常的数据库管理工作中,还是在构建复杂的数据分析应用时,别名都将成为我们不可或缺的助手。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》《Python游戏开发实战讲解》《Python Web开发实战》《Python网络爬虫实战》

Python老吕的博客 1785

进阶8-2 分页查询

进阶8:分页查询***** /* 应用场景: 当要显示的数据,一页显示不全,需要分页提交sql请求【类似于爬虫】 语法: select 查询列表 # step5 from 表1 # step1 【join type join 表2 on 连接条件 where 筛选条件 # step2 group by 分组字段 # step3 having 分组

qq_44647559的博客 227

【MySQL入门·查询进阶】8.2 BETWEEN

BETWEEN操作符是MySQL中功能强大且灵活的工具之一。通过合理使用它,你可以高效地过滤出在指定范围内的记录,从而更轻松地获取所需的数据。然而,在使用过程中也需要注意一些潜在的问题,并采取适当的措施来避免或解决这些问题。通过不断学习和实践,你将能够更好地利用BETWEEN操作符来优化你的数据库查询操作。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》《Python游戏开发实战讲解》《Python Web开发实战》《Python网络爬虫实战》

Python老吕的博客 3184

MySQL进阶8:分页查询

# 进阶8:分页查询 /* 应用场景:当显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 【【join type】 join表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序字段】 limit 【offset ,】size; offset:要显示条目的起始索引(起始索引从0开始) size:要显示的条目个数 特点: ①limit语句放在查询语句的最后(在语法和

Tangent的博客 344

【MySQL入门·查询进阶】8.4 DISTINCT

通过本文的探讨,我们对MySQL中的DISTINCT关键字有了更深入的了解。我们介绍了其基本用法、注意事项以及实际应用场景,并探讨了优化与替代方案以及实际应用中的挑战与解决方案。然而,随着数据库技术的不断发展和应用场景的不断变化,对于DISTINCT的使用也可能会有新的需求和挑战。因此,我们鼓励读者继续关注数据库领域的最新动态,并根据实际情况灵活应用DISTINCT和其他相关功能来解决实际问题。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》

Python老吕的博客 2182

MySQL8索引优化实战指南:从避坑到进阶,让SQL查询提速10倍

MySQL8索引优化,从来不是“建越多索引越好”,而是“顺势而为”——顺应InnoDB的存储原理,顺应SQL的查询逻辑,顺应业务的访问场景,才能让索引真正发挥作用。总结3个核心要点,帮你快速掌握索引优化的精髓:基础是前提:读懂聚簇索引与非聚簇索引的差异,选对主键类型,避免从源头踩坑;实操是核心:善用覆盖索引、联合索引,避开10种索引失效场景,定期维护索引碎片;实战是关键:结合业务场景,用EXPLAIN定位问题,用案例验证优化效果,避免纸上谈兵。

2302_80192044的博客 611

进阶8:分页查询 ★

#进阶8:分页查询 ★/* 应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段】 limit 【offset,】size; offset要显示条目的起始索引(起始索引从...

weixin_30710457的博客 82

【MySQL入门·查询进阶】8.3 CASE

CASE语句是MySQL中功能强大的条件表达式工具,它可以在SELECT、UPDATE、DELETE等语句中灵活应用,帮助我们根据条件返回不同的值或执行不同的操作。通过合理使用CASE语句,我们可以构建出更加灵活和强大的SQL查询逻辑。然而,在使用CASE语句时,我们也需要注意性能、可读性和NULL处理等方面的问题,以确保代码的高效性和可维护性。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》《Python游戏开发实战讲解》

Python老吕的博客 2150

ElasticSearch漫游 (8. 进阶 DSL查询 )

整个概念新手可能不太理解相关性算分是基于TF-IDF(词频-逆文档频率)模型和向量空间模型的组合来计算的。它综合考虑了多种因素,包括词频、文档长度、查询词在文档中的位置等。根据这些因素,Elasticsearch为每个文档计算一个相关性得分,表示文档与查询的匹配程度。具体来说,Elasticsearch使用词频(TermFrequency,TF)来衡量查询词在文档中的出现频率。如果查询词在文档中出现得越多,该文档的相关性得分就会更高。但是,它也考虑到词频的归一化,以避免较长的文档在得分上占优势。

陆续将以前写过的技术博客统一搬运到csdn 271
上一篇: windows常用
下一篇: 面试题20231008分笔试和面试-导航页
Eastlin_1
博客等级 码龄6年 3109粉丝 122原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值