sql server 分组两张表 统计分组,在线等!!!

当前位置: >
> 求解!合并两张表的统计结果,数据大,可以用SQL或JAVA
求解!合并两张表的统计结果,数据大,可以用SQL或JAVA
kinglisohu & at
求解!合并两张表的统计结果,数据大,可以用SQL或JAVA
求思路。在线等!!环境:java、mysql数据库
情景:A表有t1、t2、t3、t4
&&&&&&B表有t1、t2、t3、t4
A、B表的结构是一模一样的。现在的需求是对A表根据t1、t2、t3、t4进行分组得到结果集(countA、t1、t2、t3、t4),countA是各分组的记录数,B表操作同A表一样。最后要的结果集是(countB、t1、t2、t3、t4).
最后还要统计A表字段t5为success、wait状态的分组得到countAA,即:同A表一样先进行(t1、t2、t3、t4)分组统计,条件为t5字段的值为success或wait。结果集为:(countAA、t1、t2、t3、t4)。
最终得到的结果集为(countA、countAA、countB、t1、t2、t3、t4)。
我的思路是,分三次分组统计,最后根据t1、t2、t3、t4把3个临时表合并。但因为有几百万的数据,实际操作中分组字段还有增加,单对A表进行分组统计都需好十几秒,合并临时表更是耗时,搞不好数据库表会被锁死。
我还尝试过分3次查询,然后在java代码中对3个结果集进行for循环,然后根据t1、t2、t3、t4属性相等条件来合并结果集。但这样的循环有最低几十亿次,耗时也太长。
有人给个思路么,用sql&或者&java代码解决都行。
在线等!!!很急。
引用:  我怕大家搞混才这样写的,其实是这样的,t5其实就是t4,countAA是group&by字段t1、t2、t3、t4,条件为t4是success、wait值
先别管这sql效率怎么样,这个sql符合你的要求吗?
  select&a.a,&aa.aa,&b.b,&a.t1,&a.t2,&a.t3,&a.t4
&&from&(select&count(1)&a,&t1,&t2,&t3,&t4&from&A&group&by&t1,&t2,&t3,&t4)&a
&&left&join&(select&count(1)&aa,&t1,&t2,&t3,&t4
&&&&&&&&&&&&&&&from&A&where&t4&=&'success'&group&by&t1,&t2,&t3,&t4)&aa
&&&&on&a.t1&=&aa.t1
&&&and&a.t2&=&aa.t2
&&&and&a.t3&=&aa.t3
&&&and&a.t4&=&aa.t4
&&left&join&(select&count(1)&b,&t1,&t2,&t3,&t4
&&&&&&&&&&&&&&&from&B&group&by&t1,&t2,&t3,&t4)&b
&&&&on&b.t1&=&aa.t1
&&&and&b.t2&=&aa.t2
&&&and&b.t3&=&aa.t3
&&&and&b.t4&=&aa.t4
kinglwb & &
& & (0)(0)引用帮你顶顶。。。kingloong & &
& & (0)(0)引用数据量大的情况,还需要从数据库本身入手去解决问题,可以考虑建立索引、视图或临时表来解决这种问题。kinglover & &
& & (0)(0)引用<div class='ansercon' id='content_,如果是数据库表设计的有问题,没法;
2,尝试各种表连接与过虑,看哪种更好。Kinglovequeen & &
& & (0)(0)引用两结果集union&all,聚合一次,用行转列一次出来那几个查询列。hello1 & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-sql 两张表 统计分组,在线等!!!_百度知道
按默认排序
SELECT ID,ACCOUNT,COUNT(*) FROM XXX INNER JOIN XXXGROUP BY ID,ACCOUNT
不行呀下面是我自己写的,也会报错select Disease_Unit_User.id,Account,IsPrint from Disease_Unit_User,HospMonitorWHERE HospMonitor.F_print_UserId=dbo.Disease_Unit_User.GROUP BY Disease_Unit_User.Account
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁这两个SQL语句哪里有问题&br/&create table 分组情况表(组号 c(2),组名 c(10))&br/&insert into 分组情况表 (组号,组名) values ;&br/&(&01&.&通俗唱法&)
这两个SQL语句哪里有问题create table 分组情况表(组号 c(2),组名 c(10))insert into 分组情况表 (组号,组名) values ;(&01&.&通俗唱法&)
不区分大小写匿名
values&后面多分号
我换行了,所以加了分号
SQL中也是换行加了分号?
还有,你最好是把你执行出错的原语句及出错提示贴出来
一个是创建表,一个是插入的数据。看下创建表和插入数据的,列的数据类型对不对,如果不对数据插入式错误的
1.values后面不应该出现分号2.values括号里的各个值应该用逗号分隔,不是点号
等待您来回答
编程领域专家SQL一个表有三个字段,已其中两个字段分组,取第三个字段为0的那行怎么写查询语句,没有财富了,望见谅_百度知道
SQL一个表有三个字段,已其中两个字段分组,取第三个字段为0的那行怎么写查询语句,没有财富了,望见谅
表结构如下id
0要的结果id
可能我写得不够清楚id
1要的结果id
提问者采纳
select&*&from&表名&where&flg=0
可能我写得不够清楚id
1要的结果id
select&t.id,t.name,t.flgfrom(select&id,name,flg,row_number()&over&(partition&by&name&order&by&flg)&rn&from&表名)&twhere&t.rn=1看看是这样吗
提问者评价
其他类似问题
Select id,name,flg from(Select id,name,flg from tt where flg=0 group by id,name,flgunionSelect id,name,flg from tt where id not in (Select id from tt where flg=0) group by id,name,flg) as a
按默认排序
其他2条回答
select&a.*&from&tabname&a,(select&id,min(flg)&flg&group&by&id)&aaa&where&a.id&=&aaa.id&and&a.flg&=&aaa.flg
select distinct * from 表名
order by flg
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁SQL的关于两张表分组查询的问题
[问题点数:40分,结帖人XiaoAiWhc]
SQL的关于两张表分组查询的问题
[问题点数:40分,结帖人XiaoAiWhc]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2011年12月 总版技术专家分月排行榜第三2011年9月 总版技术专家分月排行榜第三
2011年6月 MS-SQL Server大版内专家分月排行榜第一
2010年11月 MS-SQL Server大版内专家分月排行榜第三
2011年12月 总版技术专家分月排行榜第三2011年9月 总版技术专家分月排行榜第三
2011年6月 MS-SQL Server大版内专家分月排行榜第一
2011年12月 总版技术专家分月排行榜第三2011年9月 总版技术专家分月排行榜第三
2011年6月 MS-SQL Server大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 sql分组排序 的文章

 

随机推荐