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

新产品推广方案范文seo标题优化分析范文

新产品推广方案范文,seo标题优化分析范文,做360手机网站,网站市场做烂了Hive 开窗函数 Hive窗口函数是一种特殊的函数,允许用户在查询中对一组行进行计算,而不仅仅是单独的行。窗口函数可以在 SQL 查询中进行聚合、排名、累积计算等。这使得窗口函数在数据分析和报告生成中非常有用。 窗口函数的基本组成部分 函数类型&…

Hive 开窗函数

Hive窗口函数是一种特殊的函数,允许用户在查询中对一组行进行计算,而不仅仅是单独的行。窗口函数可以在 SQL 查询中进行聚合、排名、累积计算等。这使得窗口函数在数据分析和报告生成中非常有用。

窗口函数的基本组成部分

  1. 函数类型:如 ROW_NUMBER(), RANK(), DENSE_RANK(), SUM(), AVG() 等。
  2. OVER 子句:定义窗口的范围和分区,用于指定在哪些行上应用窗口函数。

窗口边界标识符

  1. CURRENT ROW:

    • 表示窗口的当前行。通常用于窗口的结束范围。
  2. n PRECEDING:

    • 表示当前行之前的n行。例如,ROWS BETWEEN 1 PRECEDING AND CURRENT ROW 表示从当前行向上看一行到当前行。
  3. n FOLLOWING:

    • 表示当前行之后的n行。例如,ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING 表示从当前行到当前行的后两行。
  4. UNBOUNDED:

    • 表示没有边界,通常用于定义窗口的起点或终点。
  5. UNBOUNDED PRECEDING:

    • 表示从窗口的起点开始,不限行数。
  6. UNBOUNDED FOLLOWING:

    • 表示到窗口的终点结束,不限行数。

窗口边界函数

  1. LAG(col, n):

    • 这个函数用于获取当前行的前n行中的指定列的值。它可以用于比较当前行与前几行的数据。
    SELECT employee_id, salary, LAG(salary, 1) OVER (ORDER BY employee_id) AS previous_salary
    FROM employees;
    

    这个示例显示了每个员工的当前工资和前一个员工的工资。

  2. LEAD(col, n):

    • 这个函数用于获取当前行的后n行中的指定列的值。与 LAG 类似,但它是向下查找。
    SELECT employee_id, salary, LEAD(salary, 1) OVER (ORDER BY employee_id) AS next_salary
    FROM employees;
    

    这个示例显示了每个员工的当前工资和下一个员工的工资。

示例数据集

假设我们有一个名为 business 的表,内容如下:

nameorderdatecost
Alice2017-04-01100
Bob2017-04-05150
Alice2017-04-10200
Charlie2017-05-01300
Bob2017-05-10100
Alice2017-05-15250
Charlie2017-06-01400

SQL 查询运行结果

1. 查询在2017年4月份购买过的顾客及总人数

SELECT name, COUNT(*) OVER() 
FROM business
WHERE SUBSTRING(orderdate, 1, 7) = '2017-04';

结果:

nameCOUNT(*)
Alice3
Bob3
Alice3
2. 查询顾客的购买明细及月购买总额

顾客购买明细及购买总额:

SELECT name, orderdate, cost, SUM(cost) OVER() 
FROM business;

结果:

nameorderdatecostSUM(cost)
Alice2017-04-011001300
Bob2017-04-051501300
Alice2017-04-102001300
Charlie2017-05-013001300
Bob2017-05-101001300
Alice2017-05-152501300
Charlie2017-06-014001300

明细及月购买总额:

SELECT name, orderdate, cost, SUM(cost) OVER(PARTITION BY MONTH(orderdate)) 
FROM business;

结果:

nameorderdatecostSUM(cost)
Alice2017-04-01100300
Bob2017-04-05150300
Alice2017-04-10200300
Charlie2017-05-01300700
Bob2017-05-10100700
Alice2017-05-15250700
Charlie2017-06-01400400

顾客购买明细及顾客购买总额:

SELECT name, orderdate, cost, SUM(cost) OVER(PARTITION BY name) 
FROM business;

结果:

nameorderdatecostSUM(cost)
Alice2017-04-01100550
Bob2017-04-05150250
Alice2017-04-10200550
Charlie2017-05-01300700
Bob2017-05-10100250
Alice2017-05-15250550
Charlie2017-06-01400400

顾客购买明细及顾客月购买总额:

SELECT name, orderdate, cost, SUM(cost) OVER(PARTITION BY name, MONTH(orderdate)) 
FROM business;

结果:

nameorderdatecostSUM(cost)
Alice2017-04-01100300
Bob2017-04-05150150
Alice2017-04-10200300
Charlie2017-05-01300300
Bob2017-05-10100100
Alice2017-05-15250250
Charlie2017-06-01400400
3. 按照日期进行累加

按照日期逐步累加购买总额

SELECT name, orderdate, cost,
SUM(cost) OVER(PARTITION BY name ORDER BY orderdate) 
FROM business;

方法2(边界从起点到当前行):

SELECT name, orderdate, cost,
SUM(cost) OVER(PARTITION BY name ORDER BY orderdate ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS sample4
FROM business;

结果:

nameorderdatecostSUM(cost)
Alice2017-04-01100100
Alice2017-04-10200300
Alice2017-05-15250550
Bob2017-04-05150150
Bob2017-05-10100250
Charlie2017-05-01300300
Charlie2017-06-01400700

当前行和前面一行的聚合:

SELECT name, orderdate, cost,
SUM(cost) OVER(PARTITION BY name ORDER BY orderdate ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS sample5
FROM business;

结果:

nameorderdatecostsample5
Alice2017-04-01100100
Alice2017-04-10200300
Alice2017-05-15250450
Bob2017-04-05150150
Bob2017-05-10100250
Charlie2017-05-01300300
Charlie2017-06-01400400

当前行和前后各一行的聚合:

SELECT name, orderdate, cost,
SUM(cost) OVER(PARTITION BY name ORDER BY orderdate ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sample6
FROM business;

结果:

nameorderdatecostsample6
Alice2017-04-01100300
Alice2017-04-10200550
Alice2017-05-15250250
Bob2017-04-05150250
Bob2017-05-10100100
Charlie2017-05-01300700
Charlie2017-06-01400400

当前行及后面所有行:

SELECT name, orderdate, cost,
SUM(cost) OVER(PARTITION BY name ORDER BY orderdate ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS sample7
FROM business;

结果:

nameorderdatecostsample7
Alice2017-04-01100550
Alice2017-04-10200250
Alice2017-05-15250250
Bob2017-04-05150100
Bob2017-05-10100100
Charlie2017-05-01300400
Charlie2017-06-01400400
4. 查询顾客上次的购买时间

使用 LAG 函数:

SELECT name, orderdate, cost,
LAG(orderdate, 1) OVER(PARTITION BY name ORDER BY orderdate) AS last_purchase_date
FROM business;

结果:

nameorderdatecostlast_purchase_date
Alice2017-04-01100NULL
Alice2017-04-102002017-04-01
Alice2017-05-152502017-04-10
Bob2017-04-05150NULL
Bob2017-05-101002017-04-05
Charlie2017-05-01300NULL
Charlie2017-06-014002017-05-01
http://www.khdw.cn/news/929.html

相关文章:

  • 大型网站制作怎么样百度新闻首页
  • 初学者做网站成人技能培训班有哪些
  • 多个网站如何做301什么是软文
  • 企业展厅设计理念南昌seo计费管理
  • 网站怎么做交易市场百度关键词优化大
  • 市政府统一建设网站的提议网站模板怎么建站
  • 网站注册账号有风险吗seo视频
  • 济南市工程建设标准定额站网站谷歌seo网站推广怎么做优化
  • 北京网站ui设计公司百度app在哪里找
  • Sensei wordpress插件网店seo是什么意思
  • 做视频的教学直播网站青岛设计优化公司
  • pc网站做成移动网站2021近期时事新闻热点事件
  • 黄冈公司网站推广软件首选seo 推广怎么做
  • 家用电脑做网站能备案长沙市seo百度关键词
  • 鄂州网站建设报价百度客户端下载
  • 花钱让别人做的网站版权是谁的关键词优化步骤简短
  • 网站建设唯美谷网站河北网站seo地址
  • 自动生成logo厦门seo排名收费
  • 长沙点梦网站建设公司怎么样汕头seo排名收费
  • flashfxp上传了网站希爱力双效片骗局
  • 一级做a爰片香蕉视频网站超级seo外链工具
  • 温州网站建设得花多少钱网络媒体推广报价
  • windows下搭建wordpress网站产品怎么优化
  • 2015做啥网站致富网络销售模式有哪些
  • 外贸网站用什么空间打广告去哪个平台免费
  • 青岛网站设计皆挺青岛博采网络黄山seo
  • 制作软件网站搜索引擎哪个好
  • 厦门市政府网站群建设品牌推广软文200字
  • 怎么做彩票平台网站吗举一个网络营销的例子
  • 石狮做网站可以免费打广告的网站