Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
Mysql 每个类别仅显示2个软件_Mysql_Sql_Sql Server_Oracle_Postgresql - Fatal编程技术网

Mysql 每个类别仅显示2个软件

Mysql 每个类别仅显示2个软件,mysql,sql,sql-server,oracle,postgresql,Mysql,Sql,Sql Server,Oracle,Postgresql,我有一个表软件id\u软件,软件名称,类别 哪种SQL查询只显示每个类别的2个软件 例如,我想得到: |id_software | software_name | category| -+------------+---------------+---------+- | 1 | Photoshop | 5 | | 2 | illustrator | 5 | | 3 | Firefox

我有一个表软件id\u软件,软件名称,类别

哪种SQL查询只显示每个类别的2个软件

例如,我想得到:

 |id_software | software_name | category|
-+------------+---------------+---------+-
 |          1 | Photoshop     | 5       |
 |          2 | illustrator   | 5       |
 |          3 | Firefox       | 1       |
 |          4 | I.E           | 1       |
-+--------------------------------------+-

来源:

您可以使用行数函数来进行此操作

SELECT *
FROM 
     (SELECT 
          Category,
          id_software,
          software_name,
          [Nth_Software] = ROW_NUMBER() OVER (Partition by Category ORDER BY Id_software)
     FROM
          table
      ) T
WHERE
     T.Nth_Software <=2

这将根据每个类别的softwareId为您提供前两个软件条目

您可以发布此示例数据吗?您好,Saechel,表格软件仅包含3个字段id\u software、software\u name、category,我只想为每个类别显示2行Quel SQL encore?[mysql | sql | sql下水道| oracle | postgresql]@wildplasser,请再说一遍?这是一个比较好的例子,它是一个不知名的公司,它在南加州的联合税务局工作[简而言之]你的问题太宽泛了。还有:表现出一些努力;因为它看起来很简单。如果这一个对您有效,为什么您不在这个答案中而不是在另一个答案中给出您的接受分数?您应该添加这是SQL Server/t-SQL语法,只是列中的[…]引号和赋值运算符
SELECT *
FROM 
     (SELECT 
          Category,
          id_software,
          software_name,
          [Nth_Software] = ROW_NUMBER() OVER (Partition by Category ORDER BY Id_software)
     FROM
          table
      ) T
WHERE
     T.Nth_Software <=2