当前位置: 首页 > news >正文

微网站案例与通信工程专业做项目的网站

微网站案例,与通信工程专业做项目的网站,外贸网站和企业网站,网络营销方式有哪些?目录 1.寻找连续值 方法一:使用自连接(Self-Join) 方法二:使用窗口函数(Window Functions) 2.寻找有重复的值 GROUP BY子句 HAVING子句 常用聚合函数: 3.找不存在某属性的值 not in no…

目录

1.寻找连续值

方法一:使用自连接(Self-Join)

方法二:使用窗口函数(Window Functions)

2.寻找有重复的值

 GROUP BY子句

HAVING子句

常用聚合函数:

3.找不存在某属性的值

not in

not exist

性能比较

使用场景


1.寻找连续值

方法一:使用自连接(Self-Join)

select distinct l1.num as ConsecutiveNums
from logs l1
join logs l2 on l1.id = l2.id - 1 and l1.num = l2.num
join logs l3 on l2.id = l3.id - 1 and l2.num = l3.num
  1. 自连接(Self-Join)

    • 自连接是指将同一张表连接到自身。通过为同一张表赋予不同的别名(如l1l2l3),可以将表中的行与其他行进行比较。

    • 在这个例子中,l1l2l3分别代表logs表中的不同行,通过id的偏移量来确定它们之间的顺序关系。

  2. 连接条件(Join Conditions)

    • l1.id = l2.id - 1:表示l2idl1id大1,即l2l1的下一行。

    • l1.num = l2.num:表示l1l2num值相同。

    • l2.id = l3.id - 1:表示l3idl2id大1,即l3l2的下一行。

    • l2.num = l3.num:表示l2l3num值相同。

    • 通过这些条件,确保了l1l2l3是连续的三行,并且它们的num值相同。

  3. DISTINCT关键字

    • DISTINCT用于去除结果中的重复行,确保输出的ConsecutiveNums是唯一的。

方法二:使用窗口函数(Window Functions)

select distinct num as ConsecutiveNums
from (select num,LAG(num,1) over(order by id ASC) as pre1,LAG(num,2) over(order by id ASC) as pre2,LEAD(num,1) over(order by id ASC) as post1,LEAD(num,2) over(order by id ASC) as post2from logs
) AS subquery
where (pre2 = pre1 and pre1 = num)or (pre1 = num and num = post1)or (num = post1 and post1 = post2)
  1. 窗口函数(Window Functions)

    • 窗口函数允许在结果集中对每一行进行计算,同时考虑其他行的值。LAGLEAD是两种常用的窗口函数。

    • LAG(num,1) over(order by id ASC) as pre1:获取当前行的前一行的num值。

    • LAG(num,2) over(order by id ASC) as pre2:获取当前行的前两行的num值。

    • LEAD(num,1) over(order by id ASC) as post1:获取当前行的下一行的num值。

    • LEAD(num,2) over(order by id ASC) as post2:获取当前行的下两行的num值。

  2. 子查询(Subquery)

    • 子查询用于生成一个临时表(subquery),其中包含了原始表中的num值以及通过窗口函数计算出的前后行的num值。

  3. WHERE子句

    • WHERE子句用于筛选出满足连续三次相同数字的行:

      • (pre2 = pre1 and pre1 = num):当前行的num值与其前两行的num值相同。

      • (pre1 = num and num = post1):当前行的num值与其前一行和下一行的num值相同。

      • (num = post1 and post1 = post2):当前行的num值与其下一行和下两行的num值相同。

  4. DISTINCT关键字

    • DISTINCT用于去除结果中的重复行,确保输出的ConsecutiveNums是唯一的。

180. 连续出现的数字 - 力扣(LeetCode)



2.寻找有重复的值

SELECT DISTINCT email AS Email
FROM Person
GROUP BY email
HAVING COUNT(email) > 1;
 GROUP BY子句
  • GROUP BY email

    • GROUP BY用于将结果集按一个或多个列分组。这里按email列分组,将具有相同email值的行归为一组。

    • 分组后,每个email值只会出现一次,便于后续的聚合操作。

HAVING子句
  • HAVING COUNT(email) > 1

    • HAVING用于对分组后的结果进行筛选,类似于WHERE子句,但HAVING用于筛选分组后的聚合结果。

    • COUNT(email):计算每个分组中的行数,即每个email值出现的次数。

    • HAVING COUNT(email) > 1:筛选出出现次数大于1的email值,即找出重复的email

常用聚合函数:
  1. COUNT:计算某个列中非NULL值的数量,或使用COUNT(*)计算表中的总行数。

  2. SUM:计算数值列的总和,仅适用于数值类型的列。

  3. AVG:计算数值列的平均值,仅适用于数值类型的列。

  4. MAX:找出某个列中的最大值,适用于数值列或字符串列。

  5. MIN:找出某个列中的最小值,适用于数值列或字符串列。

  6. COUNT(DISTINCT):计算某个列中唯一值的数量,通过DISTINCT去除重复值后计数。

  7. SUM(DISTINCT):计算某个列中唯一值的总和,通过DISTINCT去除重复值后求和。

  8. AVG(DISTINCT):计算某个列中唯一值的平均值,通过DISTINCT去除重复值后求平均。

  9. GROUP_CONCAT:将同一组中的值连接成一个字符串,可通过SEPARATOR指定分隔符。

  10. STDDEV:计算数值列的标准差,用于衡量数据的离散程度。

  11. VAR:计算数值列的方差,用于衡量数据的离散程度。

  12. BIT_AND:计算一组值的按位与,用于位运算。

  13. BIT_OR:计算一组值的按位或,用于位运算。

  14. BIT_XOR:计算一组值的按位异或,用于位运算。

3.找不存在某属性的值

not in

select name as Customers
from Customers
where Customers.id not in (select customerId from Orders
)
  • 定义

    • NOT IN 用于检查某个值是否不在一个子查询或值列表中。

  • 语法

    SELECT column_name
    FROM table_name
    WHERE column_name NOT IN (subquery | value_list);
  • 特点

    • 子查询NOT IN 后面可以跟一个子查询,返回一个值列表。

    • 值列表:也可以直接跟一个具体的值列表。

    • 性能:在某些情况下,NOT IN 的性能可能不如 NOT EXISTS,尤其是在子查询返回大量数据时。

    • 空值处理:如果子查询返回的列表中包含 NULLNOT IN 会返回空结果集,因为 NULL 与任何值的比较结果都是 UNKNOWN

not exist

SELECT name AS Customers
FROM Customers c
WHERE NOT EXISTS (SELECT 1FROM Orders oWHERE o.customerId = c.id
);
  • 定义

    • NOT EXISTS 用于检查某个子查询是否不返回任何行。

  • 语法

    SELECT column_name
    FROM table_name
    WHERE NOT EXISTS (subquery);
  • 特点

    • 子查询NOT EXISTS 后面必须跟一个子查询。

    • 性能:通常比 NOT IN 更高效,尤其是在处理大量数据时。NOT EXISTS 会在找到第一个匹配的行时停止进一步检查,而 NOT IN 会检查整个子查询结果。

    • 空值处理NOT EXISTS 不受 NULL 值的影响,因为它只关心子查询是否返回行,而不是具体的值。

性能比较

  • NOT IN

    • 适用于子查询返回的值列表较小的情况。

    • 如果子查询返回大量数据,性能可能会下降。

    • NULL 值敏感,可能导致意外结果。

  • NOT EXISTS

    • 通常更高效,尤其是在处理大量数据时。

    • 不受 NULL 值的影响。

    • 逻辑上更清晰,尤其是在涉及多表连接时。

使用场景

  • NOT IN

    • 适用于简单的值列表检查。

    • 适用于子查询返回的值列表较小的情况。

  • NOT EXISTS

    • 适用于复杂的子查询,尤其是涉及多表连接的情况。

    • 适用于需要高效处理大量数据的情况。

http://www.dtcms.com/a/505697.html

相关文章:

  • 宁波网站推广方式优化设计官方电子版
  • 网站搭建中企动力最行gl账号注册网站
  • 旅游电商网站开发wordpress文章字数
  • 东莞乐从网站建设四川省城市建设培训中心 网站
  • 医院预约挂号系统网站开发方案datadata.asp 网站 破解
  • 綦江网站建设设计师网址导航 优设
  • 长景园林这个网站谁做的wordpress tag 优化
  • phpwind 企业网站七初SEO网站建设
  • 长沙建站找有为太极就治就wordpress 历史版本
  • 写网站建设的论文网上服务平台官网
  • 外贸联系网站php源码网站修改
  • 淘宝不允许 网站建设太原头条新闻
  • 做网站时空间的选择什么网站可以做任务领赏金
  • 饮料网站模板建站行业导航网站
  • 网站导航如何做半透明渐变小程序店铺怎么弄
  • 网站收录查询入口班级网站怎么做ppt模板
  • 济南网站建设维护公司怎么用sharepoint做网站
  • win2008的iis7建网站流程佛山智能模板建站
  • 浦口区教育局网站集约化建设重庆的网站建设
  • 电商会学着做网站呢企业+网站+wordpress
  • html怎么做移动端网站超详细的wordpress主题
  • 石家庄网站建设专家福田专门做网站推广公司
  • 怎么做网站啊培训网站建设报价单
  • 网站的推广方式组合电子商务网站建设实践报告摘要
  • 门户网站建设预算表wordpress文章末尾添加版权声明
  • 建立网站官网网站开发语言及数据库
  • 温州市建设小学大南网站网站建设软著
  • 杭州百度推广代理商网站排名优化外包公司
  • 网站开发质量屋网站网站二维码收钱怎么做的
  • 无锡市建设局网站联系电话兼容手机的网站