需求 请用sql写出所有用户中在今年10月份第一次购买商品的金额,表order字段: (购买用户:userid, 金额:money, 购买时间:paymenttime(格式:2017-10-01), 订单...row(s) 分析 1、date_format只能支持日期格式,比如2021-03-30 2、date_format(current_date(),"yyyy-10")是用yyyy取出年份,10是给的默认值...,其他玩法见扩展部分 3、所有用户10月份第一次购买,从需求来看,是对每个用户分组,对购买时间排序,所以这里需要对用户开窗,因为是第一次购买,所以排序是是正序 4、这里从数据来看,购买时间是日期,不是时间...,也就是说用户可能在同一天购买多次,如果是这样,则要求购买时间是时间类型,精确到秒 5、这里的数据的唯一性是通过时间约束的,所以不用去重 6、这里是一个正确的写法,先过滤数据,减少数据集——预处理、预聚合的会让数据处理的阶段更清晰...,在一个子查询中实现多种和阶段处理,需要衡量效率来决定,后面把这部分拿出来做个对比分析 7、这里order是关键字,所以用`号 扩展 date_format扩展玩法 hive (default)> select
step3、查看某个数据库中数据表概况 ? 小美检查了各个数据库的概况,发现大部分数据按照月份留存。但是,有一个数据库,里面的数据缺失了 12 月份的数据。...数据的缺失可是大问题,尤其在进行专项分析的时候,有很大的几率会用到历史数据,小美向组长反映了这个情况,组长表示,数据表有可能误删,查看历史资料,可以添加。...小美发现,找到的遗失数据是一个 EXCLE 文档,用 cmd 终端上传需要找到正确的路径。此外,在终端内输入命令,没有办法修改,必须重新敲入正确的代码。...对此,小美想,有没有一个办法,可以很迅速便捷的上传文档,且可以修改错误的指令呢? 当然有!聪明的人类在数据库出现之后,进行了一系列的数据库可视化工具的研发。...特点: (1)兼容性非常强 (2)支持元数据编辑(包括表,列,键,索引) (3)支持SQL语句和脚本的执行 (4)支持SQL关键字高亮显示 (5)简单友好的显示页面 No.2、MySQL WorkBench
异步线程发送短信 假设由于某些原因,你现在需要做一些监控,比如监控的内容是,你的sms数据表里还有没有state=0(未发送)的短信,方便判断一下堆积的未发送短信大概在什么样的一个量级。...因此由于事务隔离级别的存在,不同的事务在同一时间下,看到的表内数据行数是不一致的,因此innodb,没办法,也没必要像myisam那样单纯的加个count字段信息在数据表上。...那如果不可避免要使用count(),有没有办法让它快一点? 各种count()方法的原理 count()的括号里,可以放各种奇奇怪怪的东西,想必大家应该看过,比如放个星号*,放个1,放个索引列啥的。...知道真相的我眼泪掉下来。 那有没有其他更好的办法?...实时性要求较高的场景 如果你对这个cnt计算结果的实时性要求很高,那你需要将更新cnt的sql加入到对应变更行数的事务中。 比如我们有两个事务A和B,分别是增加未发送短信和减少未发送短信。
二月份电量销售额完成情况 参考线 参考区域 甘特图 甘特图的概念和用途 交货延期情况的甘特图 不同的日期类型选择 瀑布图 瀑布图的概念和用途 超市不同子类产品的盈亏瀑布图 在这里插入图片描述 推荐阅读...标靶图在通常的情况下是在基本条形图的基础上增加一些参考线,参考区间,可以帮助分析人员更加直观的了解两个度量之间的关系。...通常是用来比较计划值和实际值,就是说我的这个东西有没有达标,有没有达到计划的标准。...绿色的代表真正的日期,蓝色的并不是日期,它只是把前面的一个数字单独拿出来作为一个分类的符号,因此我们在选择时,要选用绿色的标签。...超市不同子类产品的盈亏瀑布图 工作表连接 和sql中类似 制作步骤 1.先做条形图:子类别->列,利润->行(下拉列表->快速表计算->汇总),利润->标签 2.选择制作甘特图
其实也就是SQL的高级篇罢了,多用在统计方面,将行数据合并成列数据。希望读者能举一反三,灵活运用。...读取数据库中的重复记录 (group by & having) 一个表中的Id有多条重复记录,所有重复的id读取出来。...end) as '胜',sum(case when shengfu='负' then 1 else 0 end) as '负' from my_table group by time 请教一个面试中遇到的...SQL语句的查询问题 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。...语句得出结果 从table1,table2中取出如Result所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。
其实也就是SQL的高级篇罢了,多用在统计方面,将行数据合并成列数据。希望读者能举一反三,灵活运用。...读取数据库中的重复记录 (group by & having) 一个表中的Id有多条重复记录,所有重复的id读取出来。...0 end) as '胜',sum(case when shengfu='负' then 1 else 0 end) as '负' from my_table group by time 请教一个面试中遇到的...SQL语句的查询问题 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。...语句得出结果 从table1,table2中取出如Result所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。
或者说 Power Query 有没有对外提供的编程接口? 根据我的探索,似乎没有,但在网络上找到下面的两种 walkaround 方式,都比较小众。...ExportExcelDataModel(filePath, "stock_balance", sht) sht.Activate End Sub 因为需要将筛选条件:月份,从当前工作簿传递到目标工作簿...在目标工作簿 -- 即提供 Power Query 服务的 Excel 工作表中,筛选条件界面如下: [2019092715131810.png] 所以用 sql = "UPDATE [Criteria...连接字符串中 HDR = No,表示不启用 Header Row,所以此语句 F1 表示 A 列,F2 表示 B 列。Criteria 是工作表名称 (worksheet name)。...尽管官方的说法,Power Query SDK 已经在 Visual Studio 2019 中可以使用,但我在安装的时候没有成功,也不打算在 Visual Studio 2017 或更老的版本中折腾,
如果使用“增量导入数据”的“普通增量”,每天追加前一天的数据到集市中没有问题,但是无法满足“最近3个月的数据会变化”的场景,比如:咱们在2021年3月10号,将2021年3月9号的数据追加到集市中,但是到了...普通增量”是没有办法对集市中已经变化的9号的数据进行update,或者说删除9号的数据,重新导入。 这种时候“动态增量”就派上用场啦! 二. “动态增量”如何上市? A. ...(2)新建一个“动态增量”任务 文件夹:设置集市文件夹的名称,需要有意义 更新依据列:需要是日期类型,如果不是日期类型,选择旁边的新建计算列,通过表达式的方式将非日期类型的日期列,转换为日期类型。...咱们这里选择“按时间范围更新”,将历史数据全部包含(比如咱们这里,在2021年3月1号的时候,历史数据范围是2020-01-01到2021-02-28),范围选择完成也可以看下面的提示更新范围,更好理解...实现的效果是历史数据按月分割,不同月份的数据存储在不同的集市文件中,并自动给集市数据加上meta,meta名为:_Date_Range_,meta值:数据对应的月份。
前些天,有个同事跟我说:“我写了个SQL,SQL很简单,但是查询速度很慢,并且针对查询条件创建了索引,然而索引却不起作用,你帮我看看有没有办法优化?”。...,主要的消耗应该是在排序上。...根据我们自己的分析选择全表扫描相对更优。如果把limit 1000改成limit 10,则执行计划会完全不一样。 既然我们已经知道是因为随机IO导致无法利用索引,那么有没有办法消除随机IO呢?...也放到索引中。...总结 覆盖索引是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。索引的字段不只包含查询列,还包含查询条件、排序等。
通常是用来比较计划值和实际值,就是说我的这个东西有没有达标,有没有达到计划的标准。...10.2 参考线 以二月份电量销售额完成情况为参考 步骤: ①统计周期->筛选器(二月),省市->行,当期值->列 ? ?...其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。其普遍用到项目管理中。...把鼠标放入到有颜色的框内可以看到延期天数 11.3 不同的日期类型选择 下面我们先看下两者的对比图: ? ? 根据上方的两幅图片,在我标记处选择的单位都为天,但是颜色却不一样。...这个连接和sql里面的jion一样,都是选择相同的键进行连接 下面为制作步骤: ①先做条形图:子类别->列,利润->行(下拉列表->快速表计算->汇总),利润->标签 ?
7、打开Navicat Premium 15,点击注册,将复制好的密钥粘贴进去,点击激活按钮。8、在弹出的选择框中选择手动激活。 图片9、将请求码粘贴到注册机Request Code框中。...+ O:打开已有连接Ctrl + S:保存连接设置Ctrl + Q:关闭当前连接数据查询在Navicat中进行数据查询时,可以使用以下快捷键来加快操作速度:Ctrl + R:执行SQL语句F9:运行当前选定的...SQL语句Ctrl + D:复制当前行Ctrl + Y:撤销上一次操作Ctrl + Z:重做上一次操作数据表操作在Navicat中对数据表进行操作时,可以使用以下快捷键来提高效率:Ctrl + C:复制当前行或列...Ctrl + V:粘贴已复制的内容Ctrl + X:剪切当前行或列Ctrl + A:全选当前表格的所有内容Ctrl + F:查找当前表格中的关键字Alt + Enter:查看当前单元格的属性信息数据过滤和排序在...Alt + D:按日期排序当前选定的列Alt + M:按月份排序当前选定的列Alt + W:按周排序当前选定的列Alt + H:按小时排序当前选定的列Alt + K:按分钟排序当前选定的列Alt + S
主要解决办法有: 监控sql执行情况,发邮件、短信报警,便于快速识别慢查询sql 打开数据库慢查询日志功能 简化业务逻辑 代码重构、优化 异步处理 sql优化 索引优化 其他的办法先不说,后面有机会再单独介绍...没错,在sql前面加上explain关键字,就能够看到它的执行计划,通过执行计划,我们可以清楚的看到表和索引执行的情况,索引有没有执行、索引执行顺序和索引的类型等。...ALL explain select * from test2; possible_keys列 该列表示可能的索引选择。...key_len列 该列表示使用索引的长度。上面的key列可以看出有没有使用索引,key_len列则可以更进一步看出索引使用是否充分。不出意外的话,它是最重要的列。 ?...来自较早联接的表被部分读取到联接缓冲区中,然后从缓冲区中使用它们的行来与当前表执行联接。
1 在日常工作中,大家会用到各种月份的表达方式,比如英文简写、英文全称、中文和数字等,如下图所示: 但是,我们更多的时候,不是对月份本身的单独使用,月份从日期而来,而有用到日期的地方...2 中英文月份和数字格式之间的转换问题,通常是因为显示形式的需要,所以,最常用的情况,其实是数字形式转为中文或英文,如图中的1和2,而这个,在PQ里的处理也最简单。...对于这个简单的写法,你有没有想过:为什么出来的月份名称是中文,而不是英文?...([英文转日期]) 4、中文转数字 因为中文月份没办法转为日期,所以,要转换的话,我们可以通过预设列表的方式来实现,也就是找到这个列表的位置即可(记得加1哦): = List.PositionOf...我们可以随便找一列,右键-更改类型-使用区域设置: 然后选择需要的“区域”: 查看生成的公式就能找到对应的写法了: 6 关于日期格式、区域语言转换的问题,
和ROLLUP相比,CUBE又增加了对STATUS列的GROUP BY统计。...,还将获得每个月份的合计,在报表最后显示。...4.Grouping让合计列更好读 RollUp在显示广州合计时,月份列为NULL,但更好的做法应该是显示为"所有月份" Grouping就是用来判断当前Column是否是一个合计列,1为yes,然后用...Windows Function 报表除了基本事实数据外,总希望旁边多些全年总销量,到目前为止的累计销量,前后三个月的平均销量这样的列来参考....Windows子句的几个取值 1 PRECEDING 之前的一条记录 1 FOLLOWING 之后的一条记录 UNBOUNDED PRECEDING 之前的所有记录 CURRENT ROW 当前纪录 4
解决办法:把两个列拼接起来。在 SQL 中的 SELECT 语句中,用特殊操作符拼接两个列。根据 DBMS,此操作符可用加号(+)或两个竖杠(||)表示。...在 MySQL 和 MariaDB 中,必须使用特殊的函数。 Access 和 SQL Server 使用+号。...; 存储在 vend_country 列中的国家; 包含一个右圆括号的字符串。...但是,这个新计算列没有名字,它只是一个值。 如果仅在 SQL 查询工具中查看一下结果,这样没有什么不好。但是,一个未命名的列不能用于客户端应用中,因为客户端没有办法引用它。...按月份过滤,可以进行相同的处理,使用 AND 操作符可以进行年和月份的比较。 大多数 DBMS 具有比较日期、执行基于日期的运算、选择日期格式等的函数。
但是有时候,我们加了索引还是觉得SQL查询效率低下,我想看看有没有使用到索引,扫描了多少行,表的加载顺序等等,怎么查看呢?其实MySQL自带的SQL分析神器Explain执行计划就能完成以上的事情!...SUBQUERY 当 select 或 where 中包含有子查询,该子查询被标记为SUBQUERY。 DERIVED 在SQL语句中包含在from子句中的子查询。...system和const 单表中最多有一条匹配行,查询效率最高,所以这个匹配行的其他列的值可以被优化器在当前查询中当作常量来处理。...Using filesort 我们知道索引除了查询中能起作用外,排序也是能起到作用的,所以当SQL中包含 ORDER BY 操作,而且无法利用索引完成排序操作的时候,MySQL不得不选择相应的排序算法来实现...explain的信息中,一般我们要关心的是type,看是什么级别,如果是在互联网公司一般需要在range以上的级别,接着关心的是Extra,有没有出现filesort或者using template,一旦出现就要想办法避免
主要解决办法有: 监控sql执行情况,发邮件、短信报警,便于快速识别慢查询sql 打开数据库慢查询日志功能 简化业务逻辑 代码重构、优化 异步处理 sql优化 索引优化 其他的办法先不说,后面有机会再单独介绍...没错,在sql前面加上explain关键字,就能够看到它的执行计划,通过执行计划,我们可以清楚的看到表和索引执行的情况,索引有没有执行、索引执行顺序和索引的类型等。...执行sql如下: explain select * from test2; 结果: possible_keys列 该列表示可能的索引选择。...key_len列 该列表示使用索引的长度。上面的key列可以看出有没有使用索引,key_len列则可以更进一步看出索引使用是否充分。不出意外的话,它是最重要的列。...来自较早联接的表被部分读取到联接缓冲区中,然后从缓冲区中使用它们的行来与当前表执行联接。
动态隔间运算类似于EXCEL表格中的公式运算,相当于你在某个单元格中输入“=…”这样的公式。定义不太好叙述,下面通过案例说明,更为直观。...2、入门小案例 首先,新建一个普通报表–>利用sql选择需要导入的数据集 select strftime('%m',订购日期) as 月份,应付金额 from 订单 where strftime('%Y...) as 月份,应付金额 from 订单 where strftime('%Y',订购日期) = '2011' 以上述SQL语句的结果为数据源,完成如下需求。...保存后,效果预览如下 ② 占比 占比,顾名思义就是计算某个单独的数据,在总量中占据的比例。 在上述操作的基础上,添加“占比”列。直接使用自带函数进行占比运算,比较简单,操作如下。...逐层累计:逐层累计就是在分组报表中,每一组中分别将每层与上一层数据相加,得到这一层的累计结果,并按照年份隔断。 跨层累计:跨层累计,不按照年份隔断,一直求累加和。
只要返回相同数目的行,就是正常的 检索多个列 select id,name,age,sex from user 在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。...假如要生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置 解决办法是把两个列拼接起来。...但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。 > >如果仅在SQL查询工具中查看一下结果,这样没有什么不好。...> >但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。 > >为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值的替换名。...() |返回一个时间的分钟部分 | |Month() |返回一个日期的月份部分 | |Now() |返回当前日期和时间
MySQL是一款常用的关系型数据库,广泛应用于各种类型的应用程序和数据存储需求。在MySQL中,我们经常需要对表格进行行转列或列转行的操作,以满足不同的分析或报表需求。...本文将详细介绍MySQL中的行转列和列转行操作,并提供相应的SQL语句进行操作。行转列行转列操作指的是将表格中一行数据转换为多列数据的操作。在MySQL中,可以通过以下两种方式进行行转列操作。1....列转行列转行操作指的是将表格中多列数据转换为一行数据的操作。在MySQL中,可以通过以下两种方式进行列转行操作。1....在每个子查询中,pivot_column部分是列的名称,value_column则是该列的值。例如,假设我们有一个表格记录每月销售额,字段包括年份、月份和销售额。...结论MySQL中的行转列和列转行操作都具有广泛的应用场景,能够满足各种分析和报表需求。在实际应用中,可以根据具体的需求选择相应的MySQL函数或编写自定义SQL语句进行操作。
领取专属 10元无门槛券
手把手带您无忧上云