Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql中按订单排序并选择订单中前20%的记录_Sql - Fatal编程技术网

如何在sql中按订单排序并选择订单中前20%的记录

如何在sql中按订单排序并选择订单中前20%的记录,sql,Sql,我正试图这样做,但却陷入了按顺序和分组的困境 我想要col1的不同计数,前20%的排序基于col2计数/行列表 SELECT TOP (20)percent count(*) FROM (SELECT [col1],col2 FROM [report].[detailsprovider] WHERE [col3] = 2 group by [col1] as t order by t.col2 注意:这是针对TSQL的。我不确定还有哪些SQL风格包含百分比您可以显示示例数据和期望的结果

我正试图这样做,但却陷入了按顺序和分组的困境

我想要col1的不同计数,前20%的排序基于col2计数/行列表

SELECT TOP (20)percent count(*)  FROM (SELECT [col1],col2
FROM [report].[detailsprovider] 
WHERE [col3] = 2  group by [col1] as t  order by t.col2

注意:这是针对TSQL的。我不确定还有哪些SQL风格包含百分比

您可以显示示例数据和期望的结果吗?如col1应该是不同的…提供列名和一些示例,以便能够理解您想要什么从[report].[serviceprovider]选择tmp中的前20%服务商、分数、Bandval,其中[Bandval]=2按分数排序选择计数[Bandval],[servicer]来自tmp组,由[servicer]提供我希望在单个查询中实现这一点SQL只是结构化查询语言-许多数据库系统都使用这种语言,但不是数据库产品…许多东西都是特定于供应商的-因此我们确实需要知道您使用的是什么数据库系统和哪个版本请相应地更新标记…@user2637506很高兴能提供帮助。下一步时间,请在您的问题中包含更多信息是MySQL、TSQL、PostGre等吗?其他有用信息可以包括版本号、错误消息、您尝试过的内容,当然还有您的代码。这有助于我们尽可能准确地回答您的问题。
SELECT COUNT(*), col1
FROM (SELECT TOP 20 PERCENT col1 FROM myTable WHERE col3=2
ORDER BY col2) a
GROUP BY col1