SQL 查询百分比计算 - 单列,所有数据,使用 like/wildcard

SQL query for percentage calculation - single column, all data, using like/wildcard

我正在寻找 SQL 查询,它会根据具有单个数据列的 table 中某个值的出现次数为我提供一个简单的百分比值。 例子: Table 有单列数据,其中有一个 header 和 10 个数据行:

COLUMN_HEADER
XYZ://abc123xyz456-0
XYZ://abc123xyz456-1
XYZ://abc123xyz456-2
XYZ://abc123xyz456-3
ABC://abc123xyz456-4
XYZ://abc123xyz456-5
XYZ://abc123xyz456-6
ABC://abc123xyz456-7
XYZ://abc123xyz456-8
XYZ://abc123xyz456-9

我正在寻找查询以查找所有 不以 XYZ://* 开头的数据 并将其作为行数的百分比。

在上面的示例中,有两行以 ABC:// 开头,八行以 XYZ:// 开头,因此结果应该是: 80.00%

(所以 10 行中有 8 行不以 XYZ:// 开头)

你现在可以看出我是 SQL 的菜鸟。

女士 SQL 2014

提前致谢。

您可以使用条件聚合来做到这一点:

select avg(case when COLUMN_HEADER like 'XYZ://%' then 1.0 else 0 end) as xyz_ratio

你的逻辑和例子是倒退的。 80% 的行具有 do 以 "XYZ://" 开头的值。根据需要使用 likenot like