Sql 如何基于多个列进行排序

Sql 如何基于多个列进行排序,sql,ms-access,Sql,Ms Access,我试图根据特定类别的人数对Microsoft Access中的用户进行评分 有7个可能的类别,一个人可以对他们,我想分配给每个人一个分数从1-7,1被分配到得分最高的类别,7是最低的。他们可能没有每个类别的答案,在这种情况下,可以忽略该类别 目标是获得如下图所示的输出结果: 我尝试了一些不同的方法,包括分区覆盖和连接,但都没有成功。老实说,我觉得我一直在尝试的问题太离题了。我尝试从头开始用SQL编写代码,并使用了查询生成器 非常感谢您的帮助 由于电子邮件的计数可以重复,因此需要两个子查询: 选择

我试图根据特定类别的人数对Microsoft Access中的用户进行评分

有7个可能的类别,一个人可以对他们,我想分配给每个人一个分数从1-7,1被分配到得分最高的类别,7是最低的。他们可能没有每个类别的答案,在这种情况下,可以忽略该类别

目标是获得如下图所示的输出结果:

我尝试了一些不同的方法,包括分区覆盖和连接,但都没有成功。老实说,我觉得我一直在尝试的问题太离题了。我尝试从头开始用SQL编写代码,并使用了查询生成器


非常感谢您的帮助

由于电子邮件的计数可以重复,因此需要两个子查询:

选择 Score.email, 分数。类别, 得分[计数], 从分数中选择计数*作为T,其中 T.email=Score.email和 T.[Count]>=分数。[Count]- 从分数中选择计数*作为S,其中 S.email=Score.email和 S.[Count]=分数。[Count]和 S.category>Score.category作为排名 从…起 分数 订购人 Score.email, 分数。[计数]描述, 分数.类别; 对于同一电子邮件具有相同计数值的类别,以下内容将按类别名称的字母降序排列记录,因为这是您的示例中显示的内容:

选择t.email、t.category、t.count、, 从表u中选择计数* 其中t.email=u.email和 t、 计数=u.计数和t.类别可能重复