UNION函数的使用以及SQL文的高效编辑方法

查找SELECT 相同列的情况下,例如选择一个月每一天的某几项数据,相当于查询一个月三十行数据,为了在一个表中显示就要使用union函数。

eg:

SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-01%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-02%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-03%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-04%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-05%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-06%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-07%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-08%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-09%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-10%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-11%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-12%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-13%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-14%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-15%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-16%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-17%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-18%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-19%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-20%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-21%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-22%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-23%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-24%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-25%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-26%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-27%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-28%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-29%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-30%‘ AND act = ‘1005001001‘ UNION ALL
SELECT COUNT(DISTINCT uid) AS c FROM da_track WHERE data_time LIKE ‘2018-05-31%‘ AND act = ‘1005001001‘

1. UNION 表示去重的结果;

2. UNION ALL 表示不进行去重的结果;

UNION函数就是用来拼表的,条件是每个选择语句的列相同,这个列的内容可能相同或者不同,不同的时候以第一个选择语句为准。

需求在哪?比如要使用拼接之后的表格,就很有用了,场景:一个月30天,求每一天去重的日活量,然后求和再做平均,这就需要将去重的日活拼接成一张30行的表,然后再做SUM然后再求平均。

根据实际需要使用UNION函数,使用SQL最重要的技能就是理解表格之间的关系,前后层次,你需要什么表格就使用连接JOIN、UNION等方法人为实现什么表格。

在重复查询的时候,一般都是修改一段SQL文的小部分语句,比如日期的天的数字,这种情况就需要掌握高级编辑方法来提高编辑效率,使用excel和高级文本编辑器(editplus等)以及正则化手段

方法总结:

原文地址:https://www.cnblogs.com/xuhaojun/p/9138513.html

时间: 2024-08-30 01:36:40

UNION函数的使用以及SQL文的高效编辑方法的相关文章

一种可行的文档协同编辑方法实现

项目内文档协同编辑需求: 在企业生产经营过程中经常出现跨部门多人同时服务一个项目或共同研发一个产品的情况.而文件往往是最动态变化,项目内的成员相互使用对方文件或共同编辑同一文件,这样文件需要在成员间反复传递.反复更新,到后来可能需要文件及内容丢失或版本不正确等一系列的问题.(一句话,文件变乱掉了,数据不正确了.)文档协同编辑非常急需 已知道的文档协同编辑解决方案:    国外(google doc .微软的SkyDrive)国内有(享存Mobox )等产品 采用Mobox系统的协同编辑技术实现:

Union函数

. 共用体声明和共用体变量定义 共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义 共用体(有些人也叫"联合")声明和共用体变量定义与结构体十分相似.其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量.在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值. 下例表示声明一个共用体foo: uni

创建sql自定义的函数及商品分页sql存储过程

--商品筛选时判断品牌ID是否存在 --select dbo.isValite(94,94)create function isValite(@brandId int,@bId int)returns intas begin Declare @rNumber int if @brandId = @bId set @rNumber = 1 else set @rNumber = 0 if @bId = 0 set @rNumber = 1 return @rNumberendgo --判断商品筛选

Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

PL/SQL子程序 包括函数和过程.这里的函数指的是用户自己定义的函数,和系统函数是不同的.子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用.Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它.这样就叫做存储过程或者是函数.过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据. 函数 如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数. 可以使用SQL语句定义函数. 基

Union all的用法实例sql

---Union all的用法实例sqlSELECT TOP (100) PERCENT ID, bid_user_id, UserName, amount, createtime, borrowTypeFROM (SELECT bid.ID, bid.bid_user_id, reg.UserName, bid.amount, bid.createtime, '普通标' AS borrowTypeFROM dbo.YYD_Borrow_BidRecord AS bid INNER JOIN d

SQL Case when 的使用方法 (转)

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

SQL Case when 的使用方法(转自博客园:影子网络科技有限公司)

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

防止 jsp被sql注入的五种方法

一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体思路 1.寻找到SQL注入的位置 2.判断服务器类型和后台数据库类型 3.针对不通的服务器和数据库特点进行SQL注入攻击 三.SQL注入攻击实例 比如在一个登录界面,要求输入用户名和密码: 可以这样输入实现免帐号登录: 用户名: ‘or 1 = 1 – 密 码: 点登陆,如若没有做特殊处理,那么这个

SQL Case when 的使用方法

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要