首页 >数据库 >mysql教程 >SQL 如何从非结构化文本数据计算成绩百分比分布?

SQL 如何从非结构化文本数据计算成绩百分比分布?

Patricia Arquette
Patricia Arquette原创
2025-01-17 04:01:09458浏览

How Can SQL Calculate Grade Percentage Distributions from Unstructured Text Data?

使用 SQL 从非结构化数据高效计算成绩百分比

在计算成绩百分比分布时,将成绩作为自由文本存储在数据库中会带来挑战。本文提供了 SQL 解决方案来计算所有成绩的这些百分比,即使没有预定义的成绩值也是如此。

用于百分比计算的 SQL 查询

此 SQL 查询利用 over() 函数跨唯一等级值进行有效的百分比计算:

<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER ()
FROM MyTable
GROUP BY Grade;</code>

over() 函数计算整个表的总行数,无需指定所有可能的成绩即可进行百分比计算。

替代 SQL 查询(适用于没有 over() 功能的数据库)

对于缺少 over() 函数的数据库,此替代查询使用子查询:

<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM MyTable)
FROM MyTable
GROUP BY Grade;</code>

此方法使用子查询来获取总行数,然后计算百分比。

重要提示:当成绩数据存储为单字符值(例如“A”、“B”、“C”)时,这些解决方案可以准确计算百分比。 非结构化文本中更复杂的成绩格式需要在应用这些 SQL 查询之前进行预处理以提取成绩值。

以上是SQL 如何从非结构化文本数据计算成绩百分比分布?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn