[英]Need help in understanding Scenario and writing SQL
非常感谢。 我需要为所有记录和记录计数添加特定功能。 我已经把它贴在这里-
获取所有客户端的最新脚本,并根据这些脚本顶部的说明为所有记录计数添加百分比(当 % 至少为 1% 时)。
请务必使用每次测试时的总记录数来获得您的百分比。 对于所有最新的时间段,我们都需要这些 %。
我必须确保我们拥有这些百分比,以便我们可以在最新的 SQL 脚本中看到有意义的趋势。 仅查看这些脚本中的记录数并没有那么有用”
我的理解-我得到的是我需要为记录计数添加 %,但它令人困惑(当 % 至少为 1% 时) 。 那么,如果任何字段为 BLANK/NULL 或空 =-我将如何处理它?
在编写 SQL 查询时需要您的帮助,以通过采用 BLANK/NULL 或空的条件来添加 %
代码示例-
如果大于 0%,则给出总记录的百分比,并将日期放在每个查询的计数旁边
目前,SQL 查询获得总数
SELECT COUNT(1)
FROM Table A;
我是 SQL 的新手。所以,如果我理解错误,请纠正我。
使用 Count(1) 时,过滤所有 NULL 值
另外,我见过
SELECT COUNT(*)
FROM Table A;
COUNT(*) 给出总记录数,包括 null 值。
现在,为每个字段执行下一个 SQL 查询-
--Count members
SELECT COUNT(DISTINCT B_id)
FROM enrollment;
因此,现在我已经编写了一个 SQL 查询来计算 % 并包含每个记录计数的“%”。 我想它将表格的总计数除以每列计数。
嗨,非常感谢您格式化我的查询。我正在逐渐尝试学习格式化。 我没有收到任何关于我的查询的建议/答案,我一直在等待您就如何正确获取 SQL 查询提供意见。 我很抱歉让它变得大胆,我只是想强调一下。 再次请求帮助**强文本**
谢谢哈姆林。
" 我们要求记录计数中的所有值也必须显示百分比值。让我用上面的例子来解释一下 - 1) 最初让我们取一个表 A 和一个名为“B_id”的特定列。所以让我们得到没有 NULL 的记录计数我使用了 COUNT(1)。B_id 的值是 NULL。
所以,对于这个字段,Total = 100
2)接下来,我们得到表的总记录数(所以,这里我们得到了一切)= 150
现在,如果我们看到上述要求-
“所以,我希望我现在解释得更好。最后,我需要每个列的所有记录计数的百分比,例如 B_id、SSN 等
**另外,当它出现 0.76% 时必须注意一个场景 -> 然后我需要将它四舍五入到 1% 所以,SQL 查询应该计算 %
(当 % 至少为 1% 时)。**
所以我需要一个
我明白为什么人们没有回应。 这个问题不清楚,根据我读了两三遍的结果,要求也不是很清楚。 无论如何,我可以尝试帮助解决一些问题:
a) 在您的示例中, count(*)
和count(1)
之间很可能没有区别,除非您使用的是非标准数据库。 那是:
select count(1) from tableA
和
select count(*) from tableA
返回完全相同的答案。 两者都忽略不存在的记录。 试试看,你会看到的。
b)要获得百分比,您必须运行两个查询是正确的。 这是一种可能的方法。 首先,获取总数,如下所示:
select count(*) from TableA
然后,获取每个项目的计数,并将其除以总数。
select item, count(*) from TableA group by item
将它们组合成一个更大的 select 语句,可能是这样的:
select x.item, round (x.nbr / (select count(*) from TableA), 2) * 100 as Pct
from (
select item, count(*) as nbr
from TableA
group by item
) x
c) 您使用的是哪个 SQL? 语法变化很大,值得您花时间告诉我们。
d) 您对空值的关注是不必要的。 通常,如果一条记录不存在,SQL 语句将忽略它。 我可能会错过你的观点,但我认为这不会是你最关心的问题之一。 另一方面,null 值在 SQL 中是特殊的,因为它们不为零并且空值不等于任何值。 Null 甚至不等于 null。 如果上面代码中的 null 值有问题,您可能必须这样做:
select x.item, round (x.nbr / (select count(*) from TableA), 2) * 100 as Pct
from (
select item, count(*) as nbr
from TableA
where item is not null
group by item
) x
希望这可以帮助。 它可能不是您正在寻找的答案,但我认为它可能会让您开始更好地提出问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.