sql - SQL 查询中使用的 N% 不返回实际结果
问题描述
我正在尝试从下表中获取 10% 的客户,如下所示,
select top 10 percent t1.EMAIL
from customers t1
我得到的输出是所有记录而不是 10%。我没有得到我在这里做错了什么?谁能帮我
这是 Salesforce Marketing cloud 中使用的目标数据扩展,操作被覆盖
解决方案
我创建了一个SQL Fiddle,它选择了 20 个项目中的前 10%。正如预期的那样,它成功返回了 2 个项目。
架构
create table foo(id int primary key);
insert into foo(id) values
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9),
(10),
(11),
(12),
(13),
(14),
(15),
(16),
(17),
(18),
(19),
(20);
选择
select top 10 percent *
from foo;
结果
您的问题的可能原因
- 您可能有 0 件商品
- 您可能没有执行您认为执行的操作(忘记重建应用程序或类似的东西)
- 您的实际查询可能会出于问题的目的而被修改,以避免泄露信息
如果这个答案仍然没有帮助
那么您可能想要创建一个 SQL Fiddle,其中存在可重现的问题。您还可以分享有关customers
表格是什么样子、结构、大小等的更多信息。
推荐阅读
- javascript - 如何修复子路由?
- proxy - 带代理的 Ansible 查找 url
- javascript - 为什么即使在邮递员中测试了请求,Axios 也会超时?
- python - Python数据类:检查字段是否在可能值列表中
- kubernetes - 在 HPA 中使用被推送到 prometheus pushgateway 的指标
- arrays - Rust 中“for in n..m”的意外行为
- node.js - 使用带有错误传递选项 { useUnifiedTopology: true } 的 nodejs 到 MongoClient 构造函数
- hyperledger-fabric - Hyperledger Fabric:无法从远程对等方获取私有数据
- windows-10 - Manjaro+Remmina+RDP (Win10) 打开新窗口时滞后3-5秒(如打开thunderbird、windows explorer等)
- django - CustomAuthBackend() 缺少 1 个必需的位置参数:'ModelBackend'