计算 SQL 中的百分比

Calculating a percentage in SQL

我正在尝试计算 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')
;

我的代码 returns 我想看到的正确行但是我如何计算这些行在总输出中的百分比...我知道选择两个部分并将它们分开但是我没听清楚。

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

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

我已经阅读了一些其他帖子,但离获得结果还差得很远。 谢谢你。

您需要一个子查询来查找红利。像这样。

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

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

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