计算SQL中的百分比

时间:2015-03-11 18:35:37

标签: sql sql-server count division percentage

我正在尝试计算SQL中的百分比。我想找出以'RT @'

开头的输出百分比
CREATE TABLE temp
    ([tweet] varchar(130))    ;

INSERT INTO temp
    ([tweet])
VALUES
    ('WillyWonka'),
    ('Barbara'),
    ('JoanOfArcJoanArcadia'),
    ('LisaDLisa Diddle'),
    ('LisaDSkip Padington'),
    ('WillyNillySiil Stoinson'),
    ('RT @Barbara'),
    ('JoanOfArcJoanArcadia'),
    ('LisaDLisa Diddle'),
    ('RT @LisaDSkip Padington')
;

我的代码正确地返回了我想要看到的行,但是如何从总输出中计算出这些行的百分比...我知道选择这两个部分然后将它们分开但是我无法得到它右。

select count(*) 
from temp
where tweet like 'RT @%'

select * 
from temp
where tweet like 'RT @%'

我已经阅读了其他一些帖子,并且没有接近获得输出。 谢谢。

4 个答案:

答案 0 :(得分:4)

您需要conditional Aggregate才能找到以'RT @'

开头的输出百分比
SELECT ( Count(CASE WHEN tweet LIKE 'RT @%' THEN 1 END) 
                     / Cast(Count(*) AS NUMERIC(10, 2)) ) * 100
FROM   temp 

答案 1 :(得分:0)

您希望子查询找到分红。这样的事情。

select (count(t.*) / (select count(*) from temp)) as percentage
from temp t
where tweet like 'RT @%'

答案 2 :(得分:0)

SELECT 
(SELECT COUNT(*) FROM temp WHERE tweet LIKE 'RT @%') /
(SELECT CAST(COUNT(*) AS MONEY FROM temp)) * 100

答案 3 :(得分:0)

SELECT (CONVERT(DECIMAL, COUNT(CASE WHEN tweet LIKE 'RT @%' THEN 1 END)) / COUNT(1)) * 100
FROM temp