【Transact-SQL】计算整个表中所有值的出现的次数
来源:互联网 发布:迷你ktv 知乎 编辑:程序博客网 时间:2024/06/15 00:39
一个表有3列,5行,那么一共有15个值,现在要计算整个表中所有值在表中出现的次数,不过这里表的列数是不确定的,上面的例子是3列,实际上也有可能是5列、20列,所以解决问题的步骤是这样的:
1、必须知道有多少列,然后构造动态语句,把这些列合并到一列中。
2、然后去重计算出所有的可能值。
3、最后计算每个值在表中出现了多少次。
if(OBJECT_ID('dbo.wc') is not null)drop table dbo.wcgocreate table wc(a nvarchar(100),b nvarchar(100),c nvarchar(100))insert into wcvalues('1','2','3'), ('a','f','d'), ('2','b','c'), (null,'c','w'), ('3','d',null)declare @temp table (cn nvarchar(100));declare @i int = 1;declare @v varchar(max)='';declare @column varchar(100)='';while @i <= (select count(*)from sys.tables tinner join sys.columns con t.object_id =c.object_id where t.name = 'wc' )begin select @column = c.namefrom sys.tables tinner join sys.columns con t.object_id =c.object_id where t.name = 'wc' and c.column_id = @i set @i = @i + 1 set @v = @v + ' select '+ @column + ' from wc union all'endselect @v = LEFT(@v,len(@v)-LEN('union all'))--select @vinsert into @tempexec (@v);with aas(select cnfrom @tempwhere cn is not nullgroup by cn) select a.cn, COUNT(t.cn)from ainner join @temp t on a.cn = t.cngroup by a.cn
- 【Transact-SQL】计算整个表中所有值的出现的次数
- sql中查询同一列所有值出现的次数
- 计算文件中所有单词出现的次数
- [SQL]计算字符在字符串中出现的次数
- 【Transact-SQL】统计某字段中的值第一次出现后的2小时内出现的次数
- SQL计算某一值连续出现的最大次数
- SQL语句之计算次数出现最多的值
- 计算1~n之间的所有十进制整数中1的出现次数
- 计算字符串中出现字符的次数
- 计算字符串中出现字符的次数
- 编写程序计算1到100中所有整数出现9的次数
- ORACLE计算某个列中出现次数最多的值
- 【Transact-SQL】一个计算用电量的问题
- sql语句 设计一个函数用来计算一个字符串中,另一个字符串出现的次数
- Mysql SQL语句计算字符在字符串中出现的次数
- SQL Server中查询一个值出现的所有表。
- 计算字符串出现的次数
- 计算字符出现的次数
- SQL Server 2005数据库备份还原错误及解决方法
- ruby 对文件的操作
- C# License
- [算法学习]常用排序算法实现
- Android+NDK+OpenGL绘制球形
- 【Transact-SQL】计算整个表中所有值的出现的次数
- UIImageView根据UIScrollView的中心点进行缩放
- 《Unix & Linux 大学教程》 - 第十三章 学习笔记
- About ubuntu bugs:1034252
- jstl标签的使用
- oracle的Job详解
- 如何查看端口号是否被占用
- memcached源代码之process_get_command add_msghdr iov
- hibernate中对象的状态