查找数据的百分比

Posted

技术标签:

【中文标题】查找数据的百分比【英文标题】:Finding % of Data 【发布时间】:2016-03-27 02:51:22 【问题描述】:

这就是我的桌子的样子

Measure    PT Name
Expired    Mickey Mouse
Expired    Donald Duck
Alive      Big Bird
Alive      Baby Bird
Rehab      Daffy Duck
Xray       Goofy

我希望它看起来像这样:

Measure   Count  %
Expired   15     40%
Alive     5      13%
Rehab     7      18%
Xray      10     27%

我犯了一个错误,我想得到一个按 Measure 分组的计数,包括同一 SQL 语句中的 % all

Select DischargeDisp, Count(*) as TotalCnt
INTO #Measure
from #LOS
group by DischargeDisp

【问题讨论】:

这是在 Excel 中吗?到目前为止,您尝试过什么? 对不起,这是在 SQL 中 sql语句到目前为止你有什么? 我有第一部分,但我似乎无法使用 % 对 Measure 进行分组 我也有按度量分组,但我想同时包含 % 【参考方案1】:
select Measure
      ,SUM(m_count) m_count
      ,(sum(m_count)*100/(select sum(m_count) from your_table)) as Percentage
      from your_table group by Measure;

将列名 count 更改为 m_count。因为它会造成混乱。

【讨论】:

我搞错了,我没有列名 m_count 或 count 我想得到 m_count 和 %【参考方案2】:
SELECT Measure,
       SUM(Cnt) AS [Count],
       CAST(SUM(Cnt) * 100 / (SELECT SUM(Cnt) FROM #LOS) AS VARCHAR(10)) + '%' AS [%]
FROM #LOS
GROUP BY Measure

【讨论】:

虽然此代码可能会回答问题,但提供有关 why 和/或 如何 此代码回答问题的附加上下文可提高其长期价值.【参考方案3】:

这是你想要的吗?

Select Measure, Count(*), Count(*) * 100 / SUM ( COUNT (*) ) OVER()
from   #LOS
group by Measure

【讨论】:

这为我提供了 % 但我还想计算 DischargeDisp 在查询中添加了 count(*)【参考方案4】:

您的问题不断变化,但也许这会满足您的需求:

Select Measure, Sum(1) as 'Count', LTrim(Str(Sum(1) * 100 / (Select Count(*) From Measure))) + '%' as [Percent]
  from Measure
  Group by Measure
order by Measure

【讨论】:

【参考方案5】:

你可以用这个:

select distinct Measure, 
       count(*) over (partition by measure) as [Count],
       format(convert(float,count(*) over (partition by measure)) /count(*) over(),'p') as [%]
from los

测试是here

【讨论】:

以上是关于查找数据的百分比的主要内容,如果未能解决你的问题,请参考以下文章

PYSPARK :查找不包括前 1 个百分位数据的变量的平均值

查找名为 mag(地震震级)的列的百分位数

在文本块中查找单词/短语中字符的百分比

Spotfire - 查找小计的百分比

在 Impala 中查找百分比作为子查询

在Javascript中查找标记的百分比