首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL【第四章】——普通级(函数)

获取当前日期和时间    2) DAY():获取日期中的天    3) MONTH():获取日期中的月    4) YEAR():获取日期中的年    5) 日期转换函数DATE_FORMAT(...常与GROUP BY一起使用,也可单独使用    2) AVG():求平均值。常与GROUP BY一起使用,也可单独使用    3) MAX():求最大值。...常与GROUP BY一起使用,也可单独使用    4) MIN():求最小值。常与GROUP BY一起使用,也可单独使用    5) COUNT():统计记录的条数。...,不会去除掉相同的记录        前提条件:结果集列数个数相同,列的类型还要相同或是兼容        使用场景:在项目统计报表模块,用来合并数据  代码案例:  四、合并(union) --...,列的类型还要相同或是兼容 -- 使用场景:在项目统计报表模块,用来合并数据 --

87420

想学数据分析但不会Python,过来看看SQL吧(下)~

,在SQL中数据分组是使用GROUP BY子句建立的。...在关系数据库中,将数据分解为多个表能更有效地存储,更方便地处理,但这些数据储存在多个表中,怎样用一条SELECT语句就检索出数据呢?那就要使用链接。...; 如上,col_1和col_2属于table_1表中,col_3属于table_2表中,而这两个表使用相同的id列进行匹配。...聚合函数 SQL的聚合函数如下所示: 函数 说明 AVG() 返回某列的均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列的和 使用示例...函数 TO_DATE函数可以将某列转为DATE格式,主要是将单独的月份或者年份等等转换为SQL可以读懂的DATE类型数据,这样做的目的是为了后续可以方便地使用时间筛选函数。

3.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《DAX进阶指南》-第6章 动态可视化

    所有其他关系位于两个表中具有相同名称的ID列之间。 销售数据可提供许多不同的视图,在同一报表页上为每个视图放置单独的视觉对象会导致报表单一而并非有见地。...使用DATEINPERIOD时,应特别考虑参考日期(上面公式中的MAX(fSales[OrderDate]),此日期是DATESINPERIOD返回的12个月期间内的最后一个日期。...在 fSales 表中,我们有三个日期列:Invoice Date 列,Order Date 列和 DeliveryDate 列,每个列都与日期表有关系。...由于其他日期列中的值可能不同,因此我们需要调整12个月滚动总计的DAX公式以使用正确的日期列。 同样,我们需要一个辅助表来允许我们在日期列之间进行选择。...DAX公式类似于第一个辅助的公式,但第三列不同,代码如下。

    5.7K50

    SQL系列(二)最常见的业务实战

    、累积练习次数(每月单独汇总)、累积占比(每月单独汇总) 每日练习次数排名前三的试卷ID 知识点:三大窗口函数的应用、窗口函数在明细与汇总中的应用 select ex.dt ,exercise_cnt...多维度聚合 统计每日各科目的练习次数,要求可以单独按照日期或者科目维度查看各自的练习次数。...max(if(date_diff=15,uv,0)) as d15 ,max(if(date_diff>15,uv,0)) as `d15+` from (-- 构造同期群+日期差数据宽表...by uid ,continue_flag )a group by uid 计算连续5日都在练习新试卷的用户数 只需在1的基础上构造出每日练习新试卷用户数据即可...精简子查询 从上面的例子也能发现,Hive与MySQL在语法习惯上有不同。MySQL习惯于先关联再整体上筛选条件和字段,但在Hive中,习惯构造好一个个的子查询,然后再关联。

    3K20

    ClickHouse(09)ClickHouse合并树MergeTree家族表引擎之MergeTree详细解析

    在Wide格式下,每一列都会在文件系统中存储为单独的文件,在Compact格式下所有列都存储在一个文件中。Compact格式可以提高插入量少插入频率频繁时的性能。...但这将导致排序键中包含大量的列,并且排序键会伴随着新添加的维度不断的更新。 在这种情况下合理的做法是,只保留少量的列在主键当中用于提升扫描效率,将维度列添加到排序键中。...使用按月分区的分区列允许只读取包含适当日期区间的数据块,这种情况下,数据块会包含很多天(最多整月)的数据。在块中,数据按主键排序,主键第一列可能不包含日期。...列和表的 TTL TTL用于设置值的生命周期,它既可以为整张表设置,也可以为每个列字段单独设置。表级别的TTL还会指定数据在磁盘和卷上自动转移的逻辑。...如果某列不是GROUP BY表达式的一部分,也没有在SET从句显示引用,结果行中相应列的值是随机的(就好像使用了any函数)。

    1.3K10

    【MySQL高级】Mysql并发参数调整及常用SQL技巧

    在Mysql中,控制并发连接和线程的主要参数包括 max_connections、back_log、thread_cache_size、table_open_cahce。...5.6.6 版本之前默认值为 50 , 之后的版本默认为 50 + (max_connections / 5), 但最大不超过900。...两个函数功能相同,都是向日期添加指定的时间间隔 DATE_SUB 和 SUBDATE 两个函数功能相同,都是向日期减去指定的时间间隔 ADDTIME 时间加法运算,在原始时间上添加指定的时间 SUBTIME...时间减法运算,在原始时间上减去指定的时间 DATEDIFF 获取两个日期之间间隔,返回参数 1 减去参数 2 的值 DATE_FORMAT 格式化指定的日期,根据参数返回指定格式的值 WEEKDAY...获取指定日期在一周内的对应的工作日索引 聚合函数 函数名称 作用 MAX 查询指定列的最大值 MIN 查询指定列的最小值 COUNT 统计查询结果的行数 SUM 求和,返回指定列的总和 AVG 求平均值

    2K30

    Mysql 常用函数(1)- 常用函数汇总

    比较两个表达式的顺序 REGEXP 字符串是否匹配正则表达式 LOCATE 返回第一次出现子串的位置 INSTR 返回第一次出现子串的位置 日期时间函数 函数名称 作用 CURDATE 和 CURRENT_DATE...DATE 获取指定日期时间的日期部分 TIME 获取指定日期时间的时间部分 MONTH 获取指定日期中的月份 MONTHNAME 获取指定日期中的月份英文名称 DAYNAME 获取指定曰期对应的星期几的英文名称...获取指定曰期是一年中的第几天,返回值范围是1~366 DAYOFMONTH 和 DAY 两个函数作用相同,获取指定日期是一个月中是第几天,返回值范围是1~31 TIME_TO_SEC 将时间参数转换为秒数...SEC_TO_TIME 将秒数转换为时间,与TIME_TO_SEC 互为反函数 DATEDIFF 返回两个日期之间的相差天数 聚合函数 聚合函数比较简单,就不单独展开讲了哦,跟group by 结合的最多...,可以看看这篇博客:https://www.cnblogs.com/poloyy/p/12868773.html 函数名称 作用 MAX 查询指定列的最大值 MIN 查询指定列的最小值 COUNT 统计查询结果的行数

    1.5K20

    神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列

    为什么 GROUP BY 之后不能直接引用原表(不在 GROUP BY 子句)中的列 ? 莫急,我们慢慢往下看。...、HAVING 或者 ORDER BY 子句的列,没有在GROUP BY中出现,那么这个SQL是不合法的     ANSI_QUOTES       启用 ANSI_QUOTES 后,不能用双引号来引用字符串...,’0000-00-00’ 允许但显示warning;如果没有设置NO_ZERO_DATE,no warning,当做完全合法的值;       3、NO_ZERO_IN_DATE情况与上面类似,不同的是控制日期和天...表 tbl_student_class 中的 cname 存储的是每位学生的班级信息,但需要注意的是,这里的 cname 只是每个学生的属性,并不是小组的属性,而 GROUP BY 又是聚合操作,操作的对象就是由多个学生组成的小组...a ≠ {a}   这两个层级的区别分别对应着 SQL 中的 WHERE 子句和 HAVING 子句的区别。

    2.2K20

    为什么 GROUP BY 之后不能直接引用原表中的列

    为什么 GROUP BY 之后不能直接引用原表(不在 GROUP BY 子句)中的列 ? 莫急,我们慢慢往下看。...、HAVING 或者 ORDER BY 子句的列,没有在GROUP BY中出现,那么这个SQL是不合法的     ANSI_QUOTES       启用 ANSI_QUOTES 后,不能用双引号来引用字符串...,’0000-00-00’ 允许但显示warning;如果没有设置NO_ZERO_DATE,no warning,当做完全合法的值;       3、NO_ZERO_IN_DATE情况与上面类似,不同的是控制日期和天...表 tbl_student_class 中的 cname 存储的是每位学生的班级信息,但需要注意的是,这里的 cname 只是每个学生的属性,并不是小组的属性,而 GROUP BY 又是聚合操作,操作的对象就是由多个学生组成的小组...a ≠ {a}   这两个层级的区别分别对应着 SQL 中的 WHERE 子句和 HAVING 子句的区别。

    1.7K10

    带你学MySQL系列 | 这份MySQL函数大全,真的超有用!

    interval:向前、向后偏移日期和时间; 10)last_day():提取某个月最后一天的日期; 11)datediff(end_date,start_date):计算两个时间相差的天数; 12...)timestampdiff(unit,start_date,end_date):计算两个时间返回的年/月/天数; 6.其它常用系统函数 7.流程控制函数 1)if函数:实现if-else的效果;...(end_date,start_date):计算两个时间相差的天数; 操作如下: 12)timestampdiff(unit,start_date,end_date):计算两个时间返回的年/月/天数...③ max()函数和min()函数:传入整型/小数类型、日期/时间类型意义较大; 结论如下: max()和min()中传入的是"整型/小数类型",计算的是数值的最大值和最小值。...max()和min()中传入的是"日期类型",max()计算的最大值是离我们最近的那个日期,min()计算的最小值是离我们最远的那个日期,这个可以记一下。

    1.5K40

    Mysql学习笔记,持续记录

    $now . '", `repayment`)) date("Y-m-d", $time) . '"'; } DATEDIFF(start,end) 函数返回两个日期之间的天数。...在navicat设定的表格主键中 有 主键1,主键2,主键3,的区别,主键1不能被级联更新(删除)(CASCADE) 外键存在默认值,引起的冲突 混合键值缺少索引引起的情况,需要为他单独申请索引 在sql...| +-------+ 1 row in set (0.02 sec) ONLY_FULL_GROUP_BY:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个...SQL是不合法的,因为列不在GROUP BY从句中 STRICT_TRANS_TABLES:严格模式,在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制 NO_ZERO_IN_DATE...Specified key was too long; max key length is 767 bytes 在mysql5.6中索引列的最大长度为767个字节。

    1.2K50

    MySQL学习笔记-基础介绍

    (4)group by 可以单独使用,单独使用时查询结果就是字段取值的分组情况,字段中取值相同的记录为一组,但是只显示该组的第一条记录。 group by 子句后可跟多个分组字段列,多列间用逗号分隔。...外连接:取出连接报中匹配到的数据,主表数据都会保留,副表中匹配不到也会保留,其值为null。 6.4、联合查询 union 用来把两个或两个以上select语句的查询结果输出连接成一个单独的结果集。...和 adddate 两个函数功能相同,都是向日期添加指定的时间间隔 date_sub 和 subdate 两个函数功能相同,都是向日期减去指定的时间间隔 addtime 时间加法运算,在原始时间上添加指定的时间...subtime 时间减法运算,在原始时间上减去指定的时间 datediff 获取两个日期之间间隔,返回参数 1 减去参数 2 的值 date_format 格式化指定的日期,根据参数返回指定格式的值...weekday 获取指定日期在一周内的对应的工作日索引 mysql 聚合函数 函数名称 作用 max 查询指定列的最大值 min 查询指定列的最小值 count 统计查询结果的行数 sum 求和,返回指定列的总和

    30710

    推荐学Java——数据表操作

    创建表设置了默认值的列除外) 插入日期 mySQL的日期格式: %Y年 %m 月 %d 日 %h 时 %m 分 %s 秒 str_to_date('日期字符串','日期格式') 比如数据表中员工的入职日期字段...(date类型的列名,'日期格式') 多用在查询时,将 date 类型的结果按照给定的格式展示出来。...增加的列也可以添加别名;增加的列仅仅是在查询结果上显示,不会真正改变表中的结构。 where后的条件写法 关系运算符:>,>=,group by 列名; // 按照某列排序,并统计该列的数量 select 列名,count(列名) from 表名 group by 列名; // 两个字段联合一起查询,示例:查找各部分...找出各部门 最高薪资大于3000的 select deptno,max(sal) from emp group by deptno having max(sal)>3000; select deptno

    2.6K20

    这几道SQL面试题都不会,别干数分啦

    代码实现 SELECT user_id, MAX(count_num) AS max_count -- 查出了最大连续登陆,where>=14,即14天连续 FROM ( -- group by相同日期..., diff_date ) e GROUP BY user_id; 二、首次购买问题 用一条 SQL 语句查询 女朋友首次购买各类化妆品的记录。...的CTE(公共表表达式)中,我们使用ROW_NUMBER()窗口函数对每个用户的购买记录按照购买日期进行排序。...PARTITION BY user_id表示我们为每个用户单独编号,ORDER BY purchase_date ASC表示按照购买日期进行升序排列。这样,每个用户的首次购买记录将被编号为1。...在主查询中,我们从RankedPurchases中选择user_id和product_id,但只选择编号为1的记录,即每个用户的首次购买记录。

    14810

    打工人打工魂!销售分析案例来啦!

    2)、对销售员按照“月份”汇总,在case when 筛选的基础上再用sum求和,得到每个销售员每个月总的销售金额。...by date_format(日期,'%Y %m'); 得到查询结果: 二、临时表查询 1、利用cese when语句先分别对销售员判断,得到每个销售员每日的销售金额,销售员原来为列里的一项,通过case...by date_format(a.日期, '%Y %m'); 得到要求的结果如下: 【本题考点】 1、重点考查用case when语句进行列数据转换和条件判断,在实际工作中,这个语句是经常用到的...) 3、年+月的表达方法 SQL中,单独的对字段取年、月,用相应的函数 year(日期字段) 对日期字段取年份 month(日期字段) 对日期字段取月份 但是,要取“年+月”,可以采用函数 date_format...(date,format) date_format(date,format )函数为SQL中设置时间格式的函数,其中括号里的“date”是要设置的日期,“format” 是设置成规定日期/时间的格式。

    14930

    原 收集SQL语句统计每天、每月、每年的数

    substr(t.date,1,10)  from table t where  t.date like '2010-03%' group by substr(t.date,1,10) 例二: sql...数据分月统计,表中只有每天的数据,现在要求求一年中每个月的统计数据(一条sql) SELECT   MONTH (  那个日期的字段  ),   SUM(  需要统计的字段, 比如销售额什么的 ) FROM...GROUP BY  MONTH (  那个日期的字段  ) 用SELECT语句对数据进行统计汇总 avg ([ALL|DISTINCT]列名) 求指定数字字段的平均值 sum ([ALL|DISTINCT...   功能:按指定条件对指定字段依次分组进行统计汇总 注:    使用GROUP BY 的语句仍可用ORDER BY子句排序     但必须在GROUP BY之后可以使用别名但不允许对SELECT没指定的列排序...GROUP BY子句中不允许使用字段或计算列的别名,可直接使用表达式.     GROUP BY子句指定表达式时,select指定的字段中可以不包括该表达式.

    3.9K20

    关于Oracle单行函数与多行函数

    · 日期 + 数字 = 日期,表示若干天之后的日期; · 日期 – 数字 = 日期,表示若干天之前的日期; · 日期 – 日期 = 数字,表示两个日期之间的间隔天数。...1、 计算两个日期之间所经历的月数:数字 MONTHS_BETWEEN(日期 1 | 列 1,日期 2 | 列 2) 2、 加上指定月之后的日期:日期 ADD_MONTHS(日期 | 列 ,月数) 思考题...| 列,转换格式) 在进行转换格式设置的时候要根据不同的数据类型进行格式标记的定义: · 日期:年(yyyy)、月(mm)、日(dd)、时(HH、HH24)、分(mi)、秒(ss); · 数字:一位任意数字...但是在 Oracle 之中提供有自动的转换方式,如果字符串按照日期的格式编写,那么可以自动由字符串变为日期。...(sal) from emp group by deptno;  --group by作用于多列: 按部门,不同的工种,统计平均工资  --group by作用于多列:先按照第一列分组;如果相同,再按照第二列分组

    1.1K10

    Mysql服务器SQL模式 (官方精译)

    由于NO_ZERO_DATE已被弃用,它将在未来的MySQL版本中作为单独的模式名称被删除,其效果包含在严格SQL模式的影响中。...NO_ZERO_IN_DATE 该NO_ZERO_IN_DATE模式会影响服务器是否允许年份不为零,但月份或日期部分为0的日期。...由于NO_ZERO_IN_DATE已被弃用,它将在未来的MySQL版本中作为单独的模式名称被删除,其效果包含在严格SQL模式的影响中。...严格模式会影响服务器是否允许年份不为零,但月份或日期部分为0(日期如'2010-00-01'or '2010-01-00')的日期: 如果未启用严格模式,则允许零部件的日期,插入不会产生警告。...但是,如果您发现已 ONLY_FULL_GROUP_BY启用导致现有应用程序的查询被拒绝,则这些操作中的任何一个都应恢复操作: 如果可以修改违规查询,则可以这样做,以便非聚合列在功能上依赖于GROUP

    3.4K30
    领券