MySQL窗口函教

您所在的位置:网站首页 3dmax单窗口放大 MySQL窗口函教

MySQL窗口函教

#MySQL窗口函教| 来源: 网络整理| 查看: 265

MySQL窗口函教-开窗聚合函数(SUM()、AVG()、MAX()、MIN()、COUNT())

和传统的聚合函数区别?

最大的区别在于,一个操作列,一个是依次操作行,最终显示出每一行,最后的效果就是呈现叠加的效果

-- 开窗聚合函数 SELECT dname, ename, salary, sum( salary ) over ( PARTITION BY dname ORDER BY hiredate ) AS c1 FROM employee

根据上面的结果,可以明显的看出,sum()操作是对每一行进行迭代,迭代之前的总数

1、如果没有order by 操作就会对所有的数据进行聚合操作

也可以控制行数,开头和结尾

rows between unbounded(开头) preceding and current(当前行) row

2、从当前行向上取出三个值,相加然后和当前行相加,就得到了当前行的最终值,如果是没有的话,那么就取到有的值。

SELECT dname, ename, salary, sum( salary ) over ( PARTITION BY dname ORDER BY hiredate rows between 3 preceding and current row) AS c1 FROM employee

3、 这里就是取出前面三行和后面一行,再去和本身相加,最终得到最终值

select dname, ename, salary, sum(salary) over(partition by dname order by hiredate rows between 3 preceding and 1 following) as c1 from employee;

4、 从当前行加到最后

SELECT dname, ename, salary, sum( salary ) over ( PARTITION BY dname ORDER BY hiredate rows BETWEEN current ROW AND unbounded following ) AS c1 FROM employee; 语法结构:rows between unbounded(开头) preceding and current(当前行) row 紧跟到order by 后面。 按照这样的形式我们可以最终获取 rows是不需要变动的参数,between 也是不需要变动的参数 unbounded preceding :开头 number preceding :加上具体的数字就是往上取到多少值 注意:如果是数值的话,或者开头一定要跟上preceding这个参数 current row:表示当前行,如果出现这个那么也就是范围指定到后面了 其次不变的就是and 如果and后面跟上具体的数字,那么就是代表着向后取多少行 unbounded following:取到最后一行 number following:向后取到具体的行 注意:如果是数值和unbounded就需要注意加following current row:表示当前行,如果出现这个那么也就是范围指定到后面了,注意row不要忘记了

Original: https://blog.csdn.net/weixin_60948956/article/details/128739884Author: 奔波霸的伶俐虫Title: MySQL窗口函教-开窗聚合函数(SUM()、AVG()、MAX()、MIN()、COUNT())

相关阅读 Title: 【PyCharm中文教程 06】超全 PyCharm 代码调试教程 1. 调试的过程

调试可以说是每个开发人员都必备一项技能,在日常开发和排查 bug 都非常有用。

调试的过程分为三步:

第一步:在你想要调试的地方,打上断点 第二步:使用调试模式来运行这个 python 程序 第三步:使用各种手段开始代码调试

首先第一步和第二步,我用下面这张图表示

【PyCharm中文教程  06】超全 PyCharm 代码调试教程

点击上图中的小蜘蛛,开启调试模式后,在 PyCharm 下方会弹出一个选项卡。

这个选项卡的按键非常多,包括

变量查看窗口 调试控制窗口 线程控制窗口 程序控制窗口

【PyCharm中文教程  06】超全 PyCharm 代码调试教程

在变量视图窗口中,您可以看到,当当前程序到达该断点时,每次执行一行代码时,所有普通变量和特殊变量都可能更改。

[En]

In the variable view window, you can see that when the current program reaches that breakpoint, all ordinary and special variables are likely to change every time you execute a line of code.

如果您的程序是多线程的,则可以通过控制窗口的下拉框来切换线程。

[En]

If your program is multithreaded, you can switch threads by controlling the drop-down box of the window.

上述两个窗口相对简单。我立刻提到了他们。下面主要介绍调试控制按钮和程序控制按钮。

[En]

The above two windows are relatively simple. I mentioned them at once. The following mainly focuses on debugging control buttons and program control buttons.

在调试控制窗口,共有 8 个按钮,他们的作用分别是什么呢?

Show Execution Point:无论你的代码编辑 窗口的光标在何处,只要点下该按钮,都会自动跳转到程序运行的地方。 Step Over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和step into效果一样的。简单的说就是,程序代码越过子函数,但子函数会执行,且不进入。 Step Into:在单步执行时,遇到子函数就进入并且继续单步执行,有的会跳到源代码里面去执行。 Step Into My Code:在单步执行时,遇到子函数就进入并且继续单步执行,不会进入到源码中。 Step Out:假如进入了一个函数体中,你看了两行代码,不想看了,跳出当前函数体内,返回到调用此函数的地方,即使用此功能即可。 Run To Cursor:运行到光标处,省得每次都要打一个断点。 Evaluate Expression:计算表达式,在里面可以自己执行一些代码。

以上七个功能,就是最常用的功能,一般操作步骤就是, 设置好断点,debug运行,然后 F8 单步调试,遇到想进入的函数 F7 进去,想出来在 shift + F8,跳过不想看的地方,直接设置下一个断点,然后 F9 过去。

看这张图就行了(下面第6点有误,应该是运行到光标处,而不是下一断点处)

【PyCharm中文教程  06】超全 PyCharm 代码调试教程

在程序控制窗口,共有 6 个按钮,他们的作用分别又是什么呢?同时看下面这张图就行了。

【PyCharm中文教程  06】超全 PyCharm 代码调试教程 2. 调试相关的快捷键 ⇧ + F9:调试当前文件 ⌥ + ⇧ + F9:弹出菜单,让你选择调试哪一个文件 F8:单步执行,不进入函数 F7:单步执行,进入函数 ⌥ + ⇧ +F7:单步执行,只进入自己写的函数 ⇧ + F8:跳出函数体 F9:运行到下一断点 ⌥ + F9:运行到光标处 ⇧ + ⌘ + F8:查看所有设置的断点 ⌘ + F8:切换断点(有断点则取消断点,没有则加上断点) ⌥ + F5:重新以调试模式运行 ⌥ + F8 计算表达式(可以更改变量值使其生效)

文章最后给大家介绍两个我自己写的在线文档:

第一个文档:PyCharm 中文指南 1.0 文档

整理了 100 个 PyCharm 的使用技巧,为了让新手能够直接上手,我花了很多的时间录制了上百张 GIF 动图,有兴趣的前往在线文档阅读。

【PyCharm中文教程  06】超全 PyCharm 代码调试教程

第二个文档:PyCharm 黑魔法指南 1.0 文档

系统收录各种 Python 冷门知识,Python Shell 的多样玩法,令人疯狂的 Python 炫技操作,Python 的超详细进阶知识解读,非常实用的 Python 开发技巧等。

【PyCharm中文教程  06】超全 PyCharm 代码调试教程

Original: https://www.cnblogs.com/wongbingming/p/14479583.htmlAuthor: 王一白Title: 【PyCharm中文教程 06】超全 PyCharm 代码调试教程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/376096/

转载文章受原作者版权保护。转载请注明原作者出处!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3