【问题标题】:SQL to generate %, n and N from the datatableSQL 从数据表中生成 %、n 和 N
【发布时间】:2022-01-20 08:40:04
【问题描述】:

我寻求您的帮助,以从数据集中的每个基础类别的变量中生成摘要查询结果作为 %、n(分子)和 N(分母):

例如:数据

sr.no. is_healthy
1 yes
2 no
3 yes
4 no
5 yes
6 yes
7 no
8 yes
9 no
10 yes

我期望以下作为总结结果

is_healthy % n N
yes 60 6 10
no 40 4 10

有什么可能的 SQL 查询来解决这个挑战? 提前致谢。

【问题讨论】:

  • 我们正在使用 MySQL。谢谢。

标签: mysql sql


【解决方案1】:

N 是表中的总行数。
n 是匹配值的行数。
% 只是n/N*100

您可以在分组查询中使用count(*) 获得n,在未分组查询中使用count(*) 获得N。既然你知道N 将是一行,你可以交叉加入它:

SELECT     is_healthy, cnt, total, cnt / total * 100 AS percent
FROM       (SELECT   is_healthy, COUNT(*) AS cnt
            FROM     my_table
            GROUP BY is_healthy) grouped
CROSS JOIN (SELECT COUNT(*) AS total
            FROM   mytable) ungrouped

【讨论】:

  • 非常感谢:)。这真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 2013-06-11
相关资源
最近更新 更多