一个排序上的问题,请高手指教!(200分)

  • 主题发起人 主题发起人 fzmaling
  • 开始时间 开始时间
F

fzmaling

Unregistered / Unconfirmed
GUEST, unregistred user!
一个排序上的问题,请高手指教!
我现有两个表:

姓名表 事件表
ID:1 ID:1 EVENT:1
ID:1 EVENT:2
ID:2 ID:2 EVENT:1
ID:3 ID:3 EVENT:1
ID:3 EVENT:2
ID:3 EVENT:3


姓名表中有一个唯一标识字段ID,事件表中有对应此ID字段的多个事件。
表示:某人做了某几件事情。
如何按每人做的事件数量进行排序。

如果如下显示:
姓名ID:3 (事件数3)
姓名ID:1 (事件数2)
姓名ID:2 (事件数1)
 
select 姓名,count(*)tt from 事件表
group by 姓名
order by tt desc
 
添加一个字段,统计事件数,把它作为副索引,以后会给你带来很大方便。
 
select id,count(event) as events
from 姓名表,事件表
where 姓名表.id=事件表.id
group by id
order by 2 desc
 
Select 姓名表.id id1, count(事件表.id) id2 from 姓名表,事件表
group by id1

 
select 姓名表.id, count(event) counter from table1 left join table2
on table1.id = table2.id
group by table1.id
order by counter desc, table1.id
 
大家都是对的,可惜来晚了
 
select 姓名,count(*)tt from 事件表
group by 姓名
order by tt desc
 
select a.id,count(b.event) as events
from 姓名表 a,事件表 b
where a.id=b.id
group by a.id
order by 2 desc
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
744
SUNSTONE的Delphi笔记
S
S
回复
0
查看
753
SUNSTONE的Delphi笔记
S
后退
顶部