如何解决在理解场景和编写SQL时需要帮助
| 非常感谢你。我需要为所有记录和记录计数添加特定功能。我已经在这里粘贴了 给我的这种情况的要求就在下面,并且以黑体和斜体表示。 我对如何编写给我们\“%\”的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(*)给出记录总数,包括空值。
现在,将对每个字段执行下一个SQL查询-
--Count members
SELECT COUNT(disTINCT B_id)
FROM enrollment;
因此,现在我给出了编写一个SQL查询来计算%并为每个记录计数包含\“%\”的条件。
我想它将表的总计数除以每个列的计数。
你好
非常感谢您格式化我的查询。我正在逐步尝试学习格式化。
我没有收到任何关于查询的建议/答案,并且一直在等待您提供有关如何正确获取SQL查询的信息。
对不起,我只是想强调一下。
再次请求帮助
**强文本**
谢谢哈姆林。
\“我们要求记录计数中的所有值也必须显示百分比值。
让我用上面的例子来解释-
1)首先让我们得到一个表A和一个称为\“ B_id \”的局部列。
因此,让我们获取没有计数的记录计数,而我使用了COUNT(1)。 B_id的值为NULL。
因此,对于此字段,总计= 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 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)您无需担心null。通常,如果一条记录不存在,SQL语句将忽略它。我可能会遗漏您的观点,但我认为这不会是您最关心的问题之一。另一方面,空值在SQL中是特殊的,因为它们不为零,并且空值不等于任何值。空值甚至不等于空值。如果上面的代码中的空值存在问题,则可能必须这样做:
select x.item,count(*) as nbr
from TableA
where item is not null
group by item
) x
希望这可以帮助。它可能不是您要找的答案,但我认为这可能使您开始更好地提出问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。