首页 > 解决方案 > SQL 查询中使用的 N% 不返回实际结果

问题描述

我正在尝试从下表中获取 10% 的客户,如下所示,

select top 10 percent  t1.EMAIL
from customers t1

我得到的输出是所有记录而不是 10%。我没有得到我在这里做错了什么?谁能帮我

这是 Salesforce Marketing cloud 中使用的目标数据扩展,操作被覆盖

在此处输入图像描述

标签: sqlsql-serversalesforce-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表格是什么样子、结构、大小等的更多信息。


推荐阅读