sql语句查询排序问题
表A中有ID名字1哈哈2呵呵3喵表B中有绑定ID内容2XX2XX2XX1XX1XX我要按照表B中出现的频率来排序就是顺序为呵呵-哈哈-喵(注意B表中不存在的喵在排序中也要...
表A中有
ID 名字
1 哈哈
2 呵呵
3 喵
表B中有
绑定ID 内容
2 XX
2 XX
2 XX
1 XX
1 XX
我要按照表B中出现的频率来排序 就是顺序为 呵呵-哈哈-喵 (注意B表中不存在的喵在排序中也要!)怎么写?先谢过了! 展开
ID 名字
1 哈哈
2 呵呵
3 喵
表B中有
绑定ID 内容
2 XX
2 XX
2 XX
1 XX
1 XX
我要按照表B中出现的频率来排序 就是顺序为 呵呵-哈哈-喵 (注意B表中不存在的喵在排序中也要!)怎么写?先谢过了! 展开
6个回答
展开全部
create table a
(id int,name varchar(20))
go
create table b
( bid int,nr varchar(20))
go
insert into a select 1,'哈哈' Union all
select 2,'呵呵' Union all
select 3,'喵'
insert into b select 2,'q' Union all
select 2,'w' Union all
select 2,'e' Union all
select 1,'r' Union all
select 1,'u'
select id,name,isnull((select COUNT(1) from b where bid=a.id),0) from a order by 3 desc
展开全部
SELECT
A.名字
FROM
A LEFT JOIN (
SELECT
Count(B.绑定ID) AS Cnt, B.绑定ID
FROM
B
GROUP BY B.绑定ID
ORDER BY Count(B.绑定ID) DESC
) AS qry
ON A.ID = qry.绑定ID
ORDER BY qry.Cnt DESC;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT A.A_ID, A.A_NAME, NVL(T.B_COUNT,0) FREQUENCY
FROM A,
(SELECT B_ID, COUNT(*) B_COUNT FROM B GROUP BY B_ID ) T
WHERE A.A_ID = T.B_ID(+)
ORDER BY FREQUENCY DESC
如果用的是ORACLE数据库 这样应该就差不多 你把列名改了试一下
如果不是ORACLE 再追问
标准的写法
SELECT A.A_ID, A.A_NAME, NVL(COUNT(B.B_ID), 0) FREQUENCY
FROM A LEFT JOIN B ON A.A_ID = B.B_ID
GROUP BY A.A_ID, A.A_NAME
ORDER BY FREQUENCY DESC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create table table_a(
id number,
name varchar2(10)
);
create table table_b(
id number,
content varchar2(10)
);
insert into table_a values(1,'哈哈');
insert into table_a values(2,'呵呵');
insert into table_a values(3,'喵');
insert into table_b values(2,'呵呵');
insert into table_b values(2,'呵呵');
insert into table_b values(2,'呵呵');
insert into table_b values(1,'哈哈');
insert into table_b values(1,'哈哈');
commit;
select a.*, nvl(t.count, 0) x
from (select b.id, count(b.id) count
from table_b b, table_a a
where a.id = b.id(+)
group by b.id) t,
table_a a
where a.id = t.id(+)
order by x desc;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Like是用*号的吗?用习惯了mysql。。是用%的。呵呵
你的少了个and啦。
select top 5 c_name,c_stu from class where like c_name='%百度%' AND c_stu>30 and c_type=true order by c_stu asc,c_type desc
请采纳。
你的少了个and啦。
select top 5 c_name,c_stu from class where like c_name='%百度%' AND c_stu>30 and c_type=true order by c_stu asc,c_type desc
请采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询