不同的组-谁的人气最高-谁跟谁最亲密-对我工作很有帮助的实用问题
老师好:请教,数据库字段如下name drug
王1 A
王1 B
王1 C
张2 A
张2 B
张2 M
张2 N
李3 A
李3 M
李3 B
李3 K
刘4 A
刘4 C
刘4 C(注意这组可能有重复,组内重复不算)
(只考虑组内,不考虑次序)
很明显,A最活跃,A和B关系最好,A和M、C关系第2
B第2活跃,B和A最密切,B和M关系第2。
我的请求是:谁最活跃,谁跟谁关系最密切,可以写出排名吗?怎么写SQL语句。这对我工作很有帮助,比如开处方,不同病人开不同的几个药,那几个药经常会配伍一起,会不会有相互作用。
非常感谢
同一个人名 同一个时间 可以开1种或1种以上的药,药名可以重复,如果重复也只算一种。活跃:很多人开这个药,开的最多的药,count(药名)最大的就是最活跃的(说过一个人一次开同样的只算一次,第二次开应另算,但这里简化没有开第2次的)。
在同一个组内,几个药在一起,不分先后秩序,互相关系是平等的,算起来最经常在一起的,就是最亲密的,可能有几个最亲密的,算经常在一起的次数就可以了,类似众数吧。
再比如:朋友们经常一起聚会,今天我跟几个在一起,明天他跟几个在一起(当然可能也有我),一个人也算单个人聚会吧,参加聚会次数最多的就是最活跃的。最活跃的他,如果他每次聚会都带同一个女朋友,那他这个女朋友应该也是最活跃者之一,且可知他们俩关系是互相最密切的,我们想知道参加聚会次数最多的前几位跟那些人接触,接触的程度,但一次聚会,一个人就是写两次名字也只算一个人。就这意思。
(如A药开得最多,和B药在一起3次,和C2次,和M2次),sql语句可能分情况写。
这里,张3李4是不会重复的,简化问题。因为时间是不会重复的。
这代码对我很重要,请版主帮忙,本人无胜感谢!
![](images/attachicons/zip.gif)
[ 本帖最后由 caihm 于 2013-6-25 22:08 编辑 ]