我正在尝试计算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 @%'
我已经阅读了其他一些帖子,并且没有接近获得输出。 谢谢。
答案 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