2011-08-18 61 views
0

所以我试图计算这个基于子查询排序结果的mysql查询。Mysql连接计算

表设计

Reports 
-------- 
report_id 
title 

Voting 
-------- 
report_id 
user_id 
vote_id //This can be 1-6 

所以我正在寻找的报告表,但要包括vote_id的上一个连接的百分比。

因为vote_id可以是不同的类型,所以我需要计算与其他投票相比的出现百分比,然后按该百分比排序。

示例1 - 报告1有四票(vote_id的1,1,2,3),所以如果我在搜索vote_id 1,它会出现50%。

示例2 - 如果我正在搜索vote_id 3,它会出现25%。

+0

什么是vote_id?您的“表格设计”中没有这样的字段。 – nobody

+0

vote_id将连接到另一个表来检索vote_name,vote_description。投票可以是'有趣','无聊','准确','真' - 即(1,2,3,4) – bluedaniel

+0

对不起刚才意识到我把vote_int而不是vote_id – bluedaniel

回答

0
SELECT vote_id, 
    (COUNT(*)/(SELECT COUNT(*) FROM Voting WHERE report_id = 1)) * 100 AS percentage 
    FROM Voting WHERE report_id = 1 
    GROUP BY vote_id 

这给出了报告1中所有vote_id与相应百分比的列表。

+0

这会工作在联接查询,但?在搜索所有报告和按百分比vote_id 1的顺序? – bluedaniel