`
canofy
  • 浏览: 828771 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

sql去除重复以及列转行sql语句

阅读更多
工作中非常实用的sql语句

数据:
userid  sid
sexgo	2145796903
sexgo	2145802359
sexgo	2145794277
sexgo	2145802357
sexgo	2145815136
sexgo	2145810994
uuwap	2145874581
uuwap	2145872602
uuwap	2145847304
uuwap	2145800783
uuwap	2145797838

需要获取的数据是每一个userid就一个sid,像上面的数据就只有2条是想要的,sql语句如下:

sqlserver中的sql语句:
select   *   from   unionsite   a   
where   not   exists
(select   1   from   unionsite   where   a.userid   =   userid   and   a.sid   >   sid)
and (userid='uuwap' or userid='sexgo')

mysql中的sql语句:
select *,count(distinct userid) from unionsite group by userid

最后执行sql语句后的数据为:
2145794277 sexgo
2145797838 uuwap

数据:
sid 数据(validtotal) 类型(searchType)
	
435466064	17100			c
2145900222	25699			c
2145900226	18505698		c
2145908186	798			c
2145909778	170			c
2145909800	4071			c
2145904011	2967164			p
2145874581	23			p
2145836931	13064841		p
2145800783	593122			p
2145900226	582085			p
2145907505	583524			p
2145847304	142			p
2145847304	0			e
2145907505	0			e
2145874581	0			e
2145900226	0			e
2145800783	0			e
2145836931	0			e
2145904011	0			e
2145874581	0			t
2145900226	45905			t
2145909800	6920			t
2145800783	42692			t
2145847304	7			t
2145797748	5750			t
2145805071	9534			t
435466064	17100			c
2145900222	25699			c
2145900226	18505698		c
2145908186	798			c
2145909778	170			c
2145909800	4071			c

需要获取的是把同一个sid而不同的类型整合成一行,sql语句如下:
mysql和sqlserver都可以:
select statDate,a.sid,searchValue,themeValue,
clientValue,adValue,searchPrice,themePrice,clientPrice,adPrice,userid as username,u.domainAddr 
from  (  Select sid,statDate,   
case when searchtype='p' then validTotal else 0 end as searchValue, 
case when searchtype='t' then validTotal else 0 end as themeValue,  
case when searchtype='c' then validTotal else 0 end as clientValue,  
case when searchtype='a' then validTotal else 0 end as adValue,  
case when searchtype='p' then price else 0 end as searchPrice, 
case when searchtype='t' then price else 0 end as themePrice,  
case when searchtype='c' then price else 0 end as clientPrice,  
case when searchtype='a' then price else 0 end as adPrice  
from unionsitemonthreportdetail   where statdate='2008-08'   ) as  a , unionsite u 
where a.sid=u.sid order by searchValue+themeValue+clientValue+adValue DESC

最后的数据:
2008-11	2145900226	0	0	18505698	0	0.00	0.00	1.50	0.00	moabcyicha	wap.moabc.com
2008-11	2145900226	0	0	18505698	0	0.00	0.00	1.50	0.00	moabcyicha	wap.moabc.com
2008-11	2145836931	13064841	0	0	0	1.30	0.00	0.00	0.00	andjiang	wap.ucfly.com
2008-11	2145904011	2967164	0	0	0	1.30	0.00	0.00	0.00	mmbcn	wap.mmb.cn
2008-11	2145800783	593122	0	0	0	1.20	0.00	0.00	0.00	uuwap	wapwz.cn
2008-11	2145907505	583524	0	0	0	1.30	0.00	0.00	0.00	yichaishd	yicha.cn
2008-11	2145900226	582085	0	0	0	1.20	0.00	0.00	0.00	moabcyicha	wap.moabc.com
2008-11	2145900226	0	45905	0	0	0.00	NULL	0.00	0.00	moabcyicha	wap.moabc.com
2008-11	2145800783	0	42692	0	0	0.00	NULL	0.00	0.00	uuwap	wapwz.cn
2008-11	2145900222	0	0	25699	0	0.00	0.00	0.50	0.00	moabcyicha	moabc.com
2008-11	2145900222	0	0	25699	0	0.00	0.00	0.50	0.00	moabcyicha	moabc.com
2008-11	435466064	0	0	17100	0	0.00	0.00	0.00	0.00	user84573	wap.wapsai.com
2008-11	435466064	0	0	17100	0	0.00	0.00	0.00	0.00	user84573	wap.wapsai.com
2008-11	2145805071	0	9534	0	0	0.00	NULL	0.00	0.00	181860	181860.com
2008-11	2145909800	0	6920	0	0	0.00	NULL	0.00	0.00	3gpp	3g.pp.cn
2008-11	2145797748	0	5750	0	0	0.00	NULL	0.00	0.00	tkwap	tkwap.com
2008-11	2145909800	0	0	4071	0	0.00	0.00	15.00	0.00	3gpp	3g.pp.cn
2008-11	2145909800	0	0	4071	0	0.00	0.00	15.00	0.00	3gpp	3g.pp.cn
2008-11	2145908186	0	0	798	0	0.00	0.00	0.16	0.00	hypei@easou.com	http://3gwawa.com
2008-11	2145908186	0	0	798	0	0.00	0.00	0.16	0.00	hypei@easou.com	http://3gwawa.com
2008-11	2145909778	0	0	170	0	0.00	0.00	5.00	0.00	hypei@easou.com	ltmp3.cn
2008-11	2145909778	0	0	170	0	0.00	0.00	5.00	0.00	hypei@easou.com	ltmp3.cn
2008-11	2145847304	142	0	0	0	1.00	0.00	0.00	0.00	uuwap	wap.wapwz.cn
2008-11	2145874581	23	0	0	0	1.00	0.00	0.00	0.00	uuwap	6.3nt.cn
2008-11	2145847304	0	7	0	0	0.00	NULL	0.00	0.00	uuwap	wap.wapwz.cn
2008-11	2145800783	0	0	0	0	0.00	0.00	0.00	0.00	uuwap	wapwz.cn
2008-11	2145874581	0	0	0	0	0.00	0.00	0.00	0.00	uuwap	6.3nt.cn
2008-11	2145874581	0	0	0	0	0.00	NULL	0.00	0.00	uuwap	6.3nt.cn
2008-11	2145847304	0	0	0	0	0.00	0.00	0.00	0.00	uuwap	wap.wapwz.cn
2008-11	2145836931	0	0	0	0	0.00	0.00	0.00	0.00	andjiang	wap.ucfly.com
2008-11	2145907505	0	0	0	0	0.00	0.00	0.00	0.00	yichaishd	yicha.cn
2008-11	2145904011	0	0	0	0	0.00	0.00	0.00	0.00	mmbcn	wap.mmb.cn
2008-11	2145900226	0	0	0	0	0.00	0.00	0.00	0.00	moabcyicha	wap.moabc.com


另外的一个sql语句:
select case when price is null then 0 else price end as adPrice from t_client_stat



分享到:
评论

相关推荐

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

    sql列转行以及行转列的通用存储过程

    这部分代码构建了一条动态SQL语句,其目的是根据`@changeCol`和`@countCol`两个参数的值,计算出不同`@changeCol`值对应的`@countCol`总和,并将其作为临时表的一列插入。 4. **调整格式**: - 计算临时表中的...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 虽然没有内置的行转列和列转行函数,但通过 CASE、GROUP_CONCAT、UNION ALL 和 JOIN 等 SQL 语句,我们可以灵活地对数据进行转换,满足不同的数据分析需求。在实际应用中,应根据数据的特性和业务需求选择合适...

    精典的SQL语句。行转列,列转行的语句

    精典的SQL语句,行转列,列转行的语句 本文共分六个部分,分别讨论精典的SQL语句,行转列,列转行的语句,行列转换、取得数据表的所有列名、更改用户密码、判断表的哪些字段不允许为空、找到含有相同字段的表六个...

    sql 列转行

    这条 SQL 语句将动态生成列转行语句,并执行该语句以获取结果。 添加平均分和总分 在获取学生的所有科目成绩后,我们还可以计算每个学生的平均分和总分。 ```sql select name 姓名, max(case subject when '...

    SQL行专列列转行存储过程

    SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的

    sql2005列转行存储过程代码

    存储过程允许我们根据运行时的条件生成SQL语句。以下是一个简单的例子,演示如何创建一个动态列转行的存储过程: ```sql CREATE PROCEDURE dbo.ConvertColumnsToRows @TableName NVARCHAR(128), @ColumnList ...

    SQL列转行显示方法

    - 使用`DECLARE`语句声明变量`@i`、`@count`、`@n`、`@j`以及字符串变量`@str`。 - 通过游标`My_Cursor`遍历`history`表中的每一行,并获取每个任务名称。 - 对于每行数据,使用动态SQL更新`#Tmp`表中的对应列。例如...

    SQL 2005 列转行的方法

    本文将详细介绍两种实现SQL Server 2005中列转行的方法:使用PIVOT和使用CASE语句。 **方法一:使用PIVOT** PIVOT是SQL Server 2005引入的一个新特性,用于将一个表中的列转换为行。以下是一个基本的PIVOT使用示例...

    sqlserver使用UNPIVOT函数列转行

    ### SQL Server 使用 UNPIVOT 函数实现列转行 #### 概述 在 SQL Server 中,`UNPIVOT` 函数是一个非常实用的功能,主要用于将数据表中的列转换为行,即“列转行”操作。这种操作在数据分析过程中经常用到,尤其是...

    SqlServer列转行的另一种方式

    ### SqlServer列转行的另一种方式 在数据库处理过程中,经常需要将数据按照特定的方式进行转换,以便更好地满足业务需求或提高查询效率。常见的转换包括列转行、行转列等操作。通常我们使用`PIVOT`和`UNPIVOT`来...

    将SQL数据表的一列转换为一行.docx

    存储过程是一种预先编译好的 SQL 语句集合,可以重复使用以提高效率。在这个示例中,我们使用存储过程 `ColToRow` 来将源表的一列转换为一行多列。 知识点2:使用临时表实现数据转换 在存储过程中,我们使用临时表...

    列转行小工具

    用户可能只需要选择源表、指定需要转换的列以及转换方式,工具就能自动生成相应的SQL语句并执行转换。 "列转行 in 的入参转换"可能是指在使用这些功能时,需要对输入的参数进行适当的格式化,例如,如果要对某个...

    sql 行专列 列转行 普通行列转换

    在实际工作中,除了SQL语句外,还可以借助一些工具来辅助转换。例如,SQL Server Management Studio(SSMS)中的“导入导出数据”功能,Power BI,或者Python、R等编程语言,它们提供了更直观的界面和强大的数据处理...

    行转列sql_server

    sql server 用于行转列,省得各位去找语句,select to_char(wm_concat('''' || valuelabel || '''')) name from (select distinct t.valuelabel from structuredrecruit t) select * from (select t.uhid, t....

    HANA SQL参考手册

    该手册覆盖了从基本概念到高级主题的各种内容,包括支持的语言、标识符规则、数据类型定义以及各种SQL语句的使用方法等。 #### 二、支持的语言和代码页 HANA SQL支持多种编程语言和不同的代码页设置,确保可以在...

    oracle的列转行问题

    然后,我们使用 declare 语句来定义一个动态 SQL 语句,用于将行数据转换成列数据。最后,我们使用 exec 语句来执行该语句,并将结果显示出来。 经过测试,我们可以看到,这种方法可以有效地解决 Oracle 列转行问题...

Global site tag (gtag.js) - Google Analytics