【发布时间】:2012-11-07 05:36:55
【问题描述】:
“讨论”表架构
title description desid replyto upvote downvote views
browser used a1 none 1 1 12
- bad topic b2 a1 2 3 14
sql database a3 none 4 5 34
- crome b4 a3 3 4 12
上表有两种类型的内容类型主要主题和评论。唯一的内容标识符 'desid' 用于标识它的主题或评论。 'desid' 以 'a' 开头代表主题,评论 'desid' 以 'b' 开头。对于评论,“replyto”是与该评论相关联的主要主题的“目标”。
我喜欢找出根据(upvote+downvote+visits+cmets 数量)添加排列的主要主题列表。以下查询按(upvote+downvote+visits)的顺序给出了热门主题列表
select * 查询中upvote+downvote+views 的数量最多
select *
from [DB_user1212].[dbo].[discussions]
where desid like 'a%'
order by (upvote+downvote+visited) desc
对于(cmets+upvote+downvote+views)我试过了
select *
from [DB_user1212].[dbo].[discussions]
where desid like 'a%'
order by (select count(*)
from [DB_user1212].[dbo].[discussions]
where replyto = desid )+upvote+downvote+visited) desc
但它没有用。因为不可能将 desid 从外部查询发送到内部子查询。请告诉我如何解决这个问题。请注意,我只需要查询语言的解决方案。
【问题讨论】:
-
湿婆!你认为有人会回答你可以接受的问题吗:)
标签: sql-server-2008 select subquery