sql
AuroraPetard
这个作者很懒,什么都没留下…
展开
-
sql left join 重复值
sql左连接多表关联的话,一般是左连接,但表关联多了,就会出现所谓的迪卡尔积,即,一对多重复值, 所以所该怎么避免呢,既然是一对多,所以就要想办法将,多的一方转换成少的一方,利用group by 分组将多的一方分组,按照关联字段,分组然后再将分组好变成一对一之后的left join...原创 2018-11-15 22:13:54 · 1870 阅读 · 0 评论 -
hive lateral view explode collect_set collec_list 以及常用函数
laterval view 常和explode一起使用用来行(单个字段中有多个指定分隔符的字段)转列lateral view 就像是有链接了一个表 LATERAL 没有Vexplode将map 或array转换成一个一个的单独字段select explode(myCol) from tableselect pageid,newAdid from table lat...原创 2019-04-03 18:27:56 · 861 阅读 · 0 评论 -
hive sql
列出用户购买的时间间隔select max(time) as mt from data;select user_id collect_list(result) from (select (mt-time)/(60*60*24) result from data ) t group by user_id主要是想说collect_list() 这个函数子查询join 链...原创 2019-03-10 10:17:54 · 96 阅读 · 0 评论 -
sql group by 注意事项
group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素: (1) 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的. (2) 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having这是SQL语法的规定,用了group by,则select之后的...原创 2018-12-10 20:17:49 · 807 阅读 · 0 评论 -
sql 查询不必需和聚合函数一起使用
sql 查询不必需和聚合函数一起使用 ,通常来说一般是要和聚合函数一起使用来处理这一组的数据 的数据但是有时不需要,会更方便,比如说 一个订单表里面需要拿到购买多次商品的用户id通常会怎么做? 表字段有 customer_id, product_code 现在需要取出购买次数> 2 的customer_idselect customer_id from (select cust...原创 2018-12-10 20:00:59 · 735 阅读 · 0 评论 -
mysql 以及hive 执行sql
mysql 有两种方式 针对sql脚本即多条sql放在一起mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】如果在 sql 脚本文件中使用了 use 数据库,则 -D数据库 选项可以忽略或者进入命令行mysql 中直接source path/xxx.sql 如果是直接执行 sql语句的话 mysql -h${HOSTNAME} -P$...原创 2018-12-03 20:25:37 · 488 阅读 · 0 评论 -
sql 时间处理 以及sql的一些函数
比如说原表为类型为 datetime2018-01-2200:00:00在sql中转换 采用 DATE_FORMAT 函数DATE_FORMAT(CREATE_TIME,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d')ifnull(xxx,0)date_add(DATE_FORMAT(create_time,'%Y-%m-%d'),INTE...原创 2018-12-03 20:15:31 · 162 阅读 · 0 评论 -
查询没有数据返回时返回一行默认值sql
select xxx from xxx union all SELECT 0,0,DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 1 DAY),NOW() from DUAL"注意字段数量对应原创 2018-12-06 10:55:08 · 8723 阅读 · 1 评论 -
sql 报错 sh: Syntax error: Unterminated quoted string
缺少双引号,仔细检查下,原创 2018-12-06 10:38:21 · 23464 阅读 · 0 评论 -
mysql中时间格式的区别
date :“yyyy-mm-dd”格式表示的日期值time :“hh:mm:ss”格式表示的时间值datetime: “yyyy-mm-dd hh:mm:ss”格式timestamp: “yyyymmddhhmmss”格式表示的时间戳值year: “yyyy”格式的年份值。...原创 2018-11-25 14:57:16 · 277 阅读 · 0 评论