一个题目,觉得这是个非常经典的SQL语句。所以拿出来大家分享。因为想不出怎么叫合适,所以就暂且叫做空字段吧。
问题:
t1                                t2 
id    firstTime                   usid         lastTime  
1     2007-5-1                    1            2007-5-2 00:5:01 
2     2007-5-1                    2            2007-5-2 05:06:12 
3     2007-5-2                    3            2007-5-6 12:01:15 
4     2007-5-3                    4            2007-6-2 15:11:12 
5     2007-5-3                    5            2007-5-8 00:00:05 
6     2007-5-4  
7     2007-6-1  
8     2007-6-2  
9     2007-6-2

输出结果:
time          count(firstTime)        count(lastTime) 
2007-5-1        2                        0 
2007-5-2        1                        2 
2007-5-3        2                        0 
2007-5-4        1                        0 
2007-5-5        0                        0
2007-5-6        0                        0
2007-5-7        0                        0
2007-5-8        0                        0
...........
........... 
2007-6-2        2  
我给的答案:

CREATE TABLE `t1` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `firstTime` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

CREATE TABLE `t2` (
  `usid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `lastTime` datetime NOT NULL,
  PRIMARY KEY (`usid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

insert into t1(`firstTime`) values
('2007-5-1'),('2007-5-1'),('2007-5-2'),('2007-5-3'),('2007-5-3'),('2007-5-4'),('2007-6-1'),
('2007-6-2'),('2007-6-2');

insert into t2(`lastTime`) values
('2007-5-2'),('2007-5-2'),('2007-5-6'),('2007-6-2'),('2007-5-8');

select * from (
select cast(firstTime as char(10)) `time`,count(1) f_t,0 l_t from t1 group By `time`
union all
select cast(lastTime as char(10)) `time`,0 f_t, count(1) l_t from t2 group by `time`)T group by `time`;

 
输出:

query result(8 records)

time f_t l_t
2007-05-01 2 0
2007-05-02 1 0
2007-05-03 2 0
2007-05-04 1 0
2007-05-06 0 1
2007-05-08 0 1
2007-06-01 1 0
2007-06-02 2 0

转载于:https://blog.51cto.com/yueliangdao0608/81308

union all与空字段的一种用法相关推荐

  1. jaxb 映射 空字段_推土机:将JAXB对象映射到业务/域对象

    jaxb 映射 空字段 Dozer是开放源代码( Apache 2许可 )" Java Bean到Java Bean映射器,可将数据从一个对象递归复制到另一个对象". 正如从其主页 ...

  2. 【总结】举例说明数据库自增字段的 3 种实现方式

    目录 MySQL Oracle 标识列 序列 SQL Server 标识列 序列 PostgreSQL 标识列 序列 SERIAL 在设计数据库的表结构时,经常会使用一个自动增长的数字序列作为主键字段 ...

  3. 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  4. Jackson 注解 -- 忽略空字段

    默认情况下,空字段也会被输出,我们可以使用 @JsonInclude 不输出空字段. package shangbo.jackson.demo10;import org.apache.commons. ...

  5. Hive _偏门常用查询函数(一)附带实例(空字段赋值、 CASE WHEN、行转列)

    空字段赋值 函数说明 NVL:给值为NULL的数据赋值,它的格式是NVL( string1, replace_with).它的功能是如果string1为NULL,则NVL函数返回replace_wit ...

  6. orika 映射非空字段_Orika:将JAXB对象映射到业务/域对象

    orika 映射非空字段 这篇文章着眼于使用Orika将JAXB对象映射到业务域对象. 本月初, 我使用基于反射的Dozer讨论 了相同的映射用例 . 在本文中,我假设需要映射相同的示例类,但是它们将 ...

  7. jaxb 映射 空字段_JAXB和未映射的属性

    jaxb 映射 空字段 JAXB(JSR-222)是例外配置,这意味着存在默认映射应用于域对象. 这意味着有时您需要显式排除字段/属性. 在这篇文章中,我将讨论如何使用@XmlTransient或@X ...

  8. oracle mysql 常用语句(查询表中某字段有几种类型,及每种类型有多少个数、插入多行、查询前几行)

    亲测有效 1.(1)查询表中某字段有几种类型,及每种类型有多少个数 select DISTINCT name user_name,count(*) num from patient GROUP BY ...

  9. 使用动态SQL获取具有非空字段的自定义表结构

    目录 介绍 背景 使用代码 兴趣点 我如何才能从查询中获取非空字段?是的,您可以使用现代的编程语言轻松完成此操作,但是通过从表中获取冗余信息可能会浪费资源,而且很多时候,它可能会添加冗余代码.从5.3 ...

最新文章

  1. dataframe for 循环 数据格式 python_Python中的for循环
  2. python获取电脑硬件信息_Python实现的读取电脑硬件信息功能示例
  3. idea springBoot 配置devtools实现热部署
  4. Shopify:管理一个顶级域名绑定shopify网店
  5. 大数据分析必须要会的数据预处理操作(二)!!!
  6. 用U盘安装Linux系统的简单方法
  7. 快速了解Druid——实时大数据分析软件
  8. 什么是WAP?wap技术简介(转)
  9. 安卓游戏广告加速插件_从零登顶免费榜榜首 这款头条发行的“特牛”超休闲游戏是如何做到的? | 游戏茶馆...
  10. 3DMM之EOS 原理解析
  11. VRCORE开发者大赛圆满落幕,中国虚拟现实内容大集结
  12. Python爬虫技术-根据【理财】关键字爬取“巨潮资讯网”的title
  13. Python学习两个月心得
  14. 关于GitHub Education(GitHub教育认证)认证
  15. 如何将小鹤单字挂接到搜狗输入法
  16. 【转】Windows Linux MacOS操作系统的区别
  17. s24.基于 Kubernetes v1.25 (二进制) 和 Docker部署高可用集群
  18. 数据可视化编程题练习
  19. 用子弹笔记学C++(1)
  20. 解析LDO的基本原理与主要参数

热门文章

  1. Oracle Parallel模式
  2. python的数字转汉字金额的不完善代码
  3. WebService – 3.后台调用WebService,根级别上的数据无效
  4. JQuery实现倒计划按钮
  5. 在 StringGrid 上画线时, 使用 GDI+ 以消除锯齿 - 回复 gsjn_8888_6666 的问题
  6. 职场必懂得的22条潜规则
  7. RHEL5系统X桌面中文乱码解决办法
  8. 希望增加的BLOG功能(序)
  9. CentOS下yum安装nginx服务
  10. 牛客网暑期ACM多校训练营(第六场)J Heritage of skywalkert