select * from tbname where c=(
select c from
(select c,count(1) cnum from tbname where c<>0
group by c order by count(1)) t where rownum<2)
order by b desc;
select c from
(select c,count(1) cnum from tbname where c<>0
group by c order by count(1)) t where rownum<2)
order by b desc;
where a.c <> 0
order by
(select count(*) from t where c = a.c) desc,a.c,b desc
我的意思是这样啊!
select * from where A =(C字段除0以外重复次数最多的值按照B的倒序依次排列)谢谢大家阿
select tname.a,tname.b,tname.c
from tname ,
(select max(count),c
from
(select tname.c,count(*) as count from tname group by c ) t1
) t2
where tname.c = t2.c
order by tname.b desc;
我的意思是这样啊!
select * from where A =(C字段除0以外重复次数最多的值按照B的倒序依次排列)
并且还需要把那些c字段重复的纪录显示出来既先一条以a=c重复最多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
然后既在一条以a=c重复次多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
。
。
。
。
。
。
。
。
然后再把等于c=0并且没有c等于这条纪录的a的值的纪录按照倒序排列阿可能说得有些乱啊!
实际上这个应用在一个论坛啊!需要把论坛回复最多的贴子和回复按照顺序列出来
既
回复最多的贴子
回复
。
。
。
回复次多的贴子
回复
回复
回复
。
。
。
回复次第三多的贴子
。
一次这样列出来表的逻辑是
a是pk
字段a是贴子的编号~~字段c 是0就说明这是一个父贴
如果有那个c等于某个a就说明这个贴子是a的子贴谢谢大家阿55
还没有解决阿
from table a
order by (select count(1) from table b where a.C=b.C) desc,a.C
我的意思是这样啊!
select * from where A =(C字段除0以外重复次数最多的值按照B的倒序依次排列)
并且还需要把那些c字段重复的纪录显示出来既先一条以a=c重复最多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
然后既在一条以a=c重复次多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
。
。
。
。
。
。
。
。
然后再把等于c=0并且没有c等于这条纪录的a的值的纪录按照倒序排列阿可能说得有些乱啊!
实际上这个应用在一个论坛啊!需要把论坛回复最多的贴子和回复按照顺序列出来
既
回复最多的贴子
回复
。
。
。
回复次多的贴子
回复
回复
回复
。
。
。
回复次第三多的贴子
。
一次这样列出来表的逻辑是
a是pk
字段a是贴子的编号~~字段c 是0就说明这是一个父贴
如果有那个c等于某个a就说明这个贴子是a的子贴谢谢大家阿55
还没有解决阿
我的意思是这样啊!
select * from where A =(C字段除0以外重复次数最多的值按照B的倒序依次排列)
并且还需要把那些c字段重复的纪录显示出来既先一条以a=c重复最多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
然后既在一条以a=c重复次多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
。
。
。
。
。
。
。
。
然后再把等于c=0并且没有c等于这条纪录的a的值的纪录按照倒序排列阿可能说得有些乱啊!
实际上这个应用在一个论坛啊!需要把论坛回复最多的贴子和回复按照顺序列出来
既
回复最多的贴子
回复
。
。
。
回复次多的贴子
回复
回复
回复
。
。
。
回复次第三多的贴子
。
一次这样列出来表的逻辑是
a是pk
字段a是贴子的编号~~字段c 是0就说明这是一个父贴
如果有那个c等于某个a就说明这个贴子是a的子贴谢谢大家阿55
还没有解决阿
我的意思是这样啊!
select * from where A =(C字段除0以外重复次数最多的值按照B的倒序依次排列)
并且还需要把那些c字段重复的纪录显示出来既先一条以a=c重复最多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
然后既在一条以a=c重复次多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
。
。
。
。
。
。
。
。
然后再把等于c=0并且没有c等于这条纪录的a的值的纪录按照倒序排列阿可能说得有些乱啊!
实际上这个应用在一个论坛啊!需要把论坛回复最多的贴子和回复按照顺序列出来
既
回复最多的贴子
回复
。
。
。
回复次多的贴子
回复
回复
回复
。
。
。
回复次第三多的贴子
。
一次这样列出来表的逻辑是
a是pk
字段a是贴子的编号~~字段c 是0就说明这是一个父贴
如果有那个c等于某个a就说明这个贴子是a的子贴谢谢大家阿55
还没有解决阿
from table a
order by (select count(1) from table b where a.C=b.C) desc,a.b desc如果有问题,请把问题说出来
from a x, (select a, c, count (*) cnt
from a
where c != 0
group by a, c) y
where x.a = y.a and x.c = y.c
order by y.cnt desc, b desc;
A B C
---------- ---------- ----------
1 x 2
2 x 2
3 x 0
4 x 0
5 x 9
6 x 1
7 x 1
8 x 3
9 x 2
0 x 1
10 rows selected.SQL> select x.*, y.cnt
2 from test x, (select c, count (*) cnt
3 from test
4 where c != 0
5 group by c) y
6 where x.c = y.c
7 order by y.cnt desc, b desc; A B C CNT
---------- ---------- ---------- ----------
6 x 1 3
0 x 1 3
7 x 1 3
1 x 2 3
9 x 2 3
2 x 2 3
8 x 3 1
5 x 9 18 rows selected.
KingSunSha(弱水三千) 还有一个问题啊!你上面这个sql能修改成下面这个嘛?就是y.cnt
去掉y
order的时候也去掉y啊!
不去掉的话程序里执行不了啊!因为里面还欠了一张表select x.*, cnt
from bbslist x, (select replyto, count (*) cnt
from bbslist
where replyto != 0 and bbscode ='1'
group by replyto) y
where x.replyto = y.replyto
order by cnt desc, posttime desc;
from bbslist x, (select replyto, count (*) cnt
from bbslist
where replyto != 0 and bbscode = '1'
group by replyto) y
where x.replyto = y.replyto
order by cnt desc, posttime desc;
select x.*, cnt
from bbslist x, (select replyto, count (*) cnt
from bbslist
where replyto != 0 and bbscode ='1'
group by replyto) y
where x.replyto = y.replyto
order by cnt desc, posttime desc;
先是0的这条纪录
然后是数据库里面所有c等于这条0的纪录的a的数据按照b得到序排列
select * from where A =(C字段除0以外重复次数最多的值按照B的倒序依次排列)
并且还需要把那些c字段重复的纪录显示出来既先一条以a=c重复最多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
然后既在一条以a=c重复次多的值为条件的纪录!然后后面是这c=这个值的b的倒序的所有纪录
。
。
。
。
。
。
。
。
然后再把等于c=0并且没有c等于这条纪录的a的值的纪录按照倒序排列阿可能说得有些乱啊!
实际上这个应用在一个论坛啊!需要把论坛回复最多的贴子和回复按照顺序列出来
既
回复最多的贴子
回复
。
。
。
回复次多的贴子
回复
回复
回复
。
。
。
回复次第三多的贴子
。
一次这样列出来表的逻辑是
a是pk
字段a是贴子的编号~~字段c 是0就说明这是一个父贴
如果有那个c等于某个a就说明这个贴子是a的子贴谢谢大家阿55
还没有解决阿
11671 日期 0.
11672 日期 11671
11673 日期 11671
11674 日期 11671
11675 日期 0
11676 日期 11675
11677 日期 11675
11678 日期 11671希望效果11671 日期 0 (主贴)
11672 日期 11671 (回复)
11673 日期 11671 (回复)
11674 日期 11671 (回复)
11678 日期 11671 (回复)
11675 日期 0 (主贴)
11676 日期 11675 (回复)
11677 日期 11675 (回复)
怎么说也得来支持一下的。
解决方法如下,DECLARE @ TABLE(Id int, PostTime smalldatetime, PId int)
INSERT @
SELECT 11671, getdate()-10, 0
UNION ALL
SELECT 11672, getdate()-10, 11671
UNION ALL
SELECT 11673, getdate()-9, 11671
UNION ALL
SELECT 11674, getdate()-8, 11671
UNION ALL
SELECT 11675, getdate()-5, 0
UNION ALL
SELECT 11676, getdate()-4, 11675
UNION ALL
SELECT 11677, getdate()-3, 11675
UNION ALL
SELECT 11678, getdate()-1, 11671
SELECT Id GroupID, * FROM @ WHERE PId = 0
UNION ALL
SELECT tA.Id, tB.* FROM @ tA
LEFT JOIN @ tB ON tA.Id = tB.PId
WHERE tB.Id IS NOT NULL
ORDER BY 1 ,2GroupID Id PostTime PId
----------- ----------- --------------------- -----------
11671 11671 2004-08-22 18:23:00 0
11671 11672 2004-08-22 18:23:00 11671
11671 11673 2004-08-23 18:23:00 11671
11671 11674 2004-08-24 18:23:00 11671
11671 11678 2004-08-31 18:23:00 11671
11675 11675 2004-08-27 18:23:00 0
11675 11676 2004-08-28 18:23:00 11675
11675 11677 2004-08-29 18:23:00 11675
FROM bbslist x,
(SELECT DECODE (replyto, '0', a, replyto) groupid, COUNT (*) cnt
FROM bbslist
WHERE bbscode = '1'
GROUP BY DECODE (replyto, '0', a, replyto)) y
WHERE DECODE (x.replyto, '0', x.a, x.replyto) = y.groupid
ORDER BY cnt DESC, posttime DESC;
犬犬(心帆)在这里才一颗三角xixi