非常感谢你。我需要为所有记录和记录计数添加特定功能。我把它贴在这里 -
为所有客户端获取最新脚本,并根据这些脚本顶部的说明为所有记录计数添加百分比(当%至少为1%时)。
确保在每次测试时使用总记录数来获得%。我们在最新的所有时间段都需要这些%。
我必须确保我们拥有这些%,以便我们可以在最新的SQL脚本中看到有意义的趋势。只看这些脚本中的记录计数就不那么有用了“
我的理解 - 我得到的是我需要为记录计数添加%,但令人困惑的是 (当%至少为1%时)。那么,如果任何字段是BLANK / NULL或空=我将如何处理它?</ p>
需要你的帮助来编写SQL查询以通过采用BLANK / NULL或空的条件来添加%
代码示例 -
如果大于0%,则给出总记录的百分比,并将日期放在每个查询的计数旁边
目前,SQL查询获取总计数
SELECT COUNT(1)
FROM Table A;
我是SQL的新手。如果我理解错误,请纠正我。
当使用Count(1)时,它会过滤所有NULL值
另外,我见过
SELECT COUNT(*)
FROM Table A;
COUNT(*)给出包括空值的总记录数。
现在,为每个字段执行下一个SQL查询 -
--Count members
SELECT COUNT(DISTINCT B_id)
FROM enrollment;
因此,现在我已经编写了一个SQL查询来计算%并为每个记录计数包含“%”。 我想它会将每个列数的表除以总计数。
嗨, 非常感谢您格式化我的查询。我逐渐尝试学习格式。 我没有收到任何有关我的查询的建议/答案,我一直在等待您如何正确获取SQL查询的输入。 我很抱歉让它变得大胆,我只想强调一下。 再次请求帮助 ** 强文 **
谢谢哈姆林。
“我们要求记录计数中的所有值都必须显示百分比值。 让我用上面的例子来解释 - 1)最初让我们拿一个表A和一个名为“B_id”的部分列。 因此,让我们使用COUNT(1)获取没有NULL的记录计数。 B_id的值为NULL。
因此,对于此字段,Total = 100
2)接下来,我们得到表的总记录数(所以,这里我们得到的所有东西)= 150
现在,如果我们看到上述要求 -
“所以,我希望我现在解释得更好。最后,我需要每个列的所有记录计数的百分比,如B_id,SSN等
**此外,当它出现0.76%时必须注意一个场景 - &gt;然后我需要将其四舍五入到1% 所以,SQL查询应该计算%
(当%至少为1%时)。**
所以我需要一个
答案 0 :(得分:0)
我明白为什么人们没有回应。这个问题不清楚,根据我阅读两到三次的内容,要求也不是很清楚。无论如何,我可以尝试帮助解决一些问题:
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 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语句将忽略它。我可能会错过你的观点,但我认为这不是你最关心的问题之一。另一方面,空值在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
希望这会有所帮助。它可能不是您正在寻找的答案,但我认为它可能会让您开始更好地制定问题。