Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
组查询和前n个记录SQL_Sql_Database - Fatal编程技术网

组查询和前n个记录SQL

组查询和前n个记录SQL,sql,database,Sql,Database,如果我有一个表,其中列pid,sid作为主键,列price和color 如何创建一个SQL查询,以获取每个pid(产品ID)中颜色等于绿色的最便宜价格 例如,我有行: (1, 1, 10, "green") (1, 2, 8, "green") (1, 3, 11, "green") (2, 1, 7, "green") (2, 2, 15, "green") (2, 3, 22, "green") (3, 1, 10, "red") (1, 2, 8, "red") (1, 3, 11, "r

如果我有一个表,其中列
pid,sid
作为主键,列
price
color

如何创建一个SQL查询,以获取每个
pid
(产品ID)中颜色
等于绿色
的最便宜价格

例如,我有行:

(1, 1, 10, "green")
(1, 2, 8, "green")
(1, 3, 11, "green")
(2, 1, 7, "green")
(2, 2, 15, "green")
(2, 3, 22, "green")
(3, 1, 10, "red")
(1, 2, 8, "red")
(1, 3, 11, "red")
然后我将收到:
(1,2,8)->pid=1
(2,1,7)->pid=2
。没有
pid=3
,因为它的颜色是红色

提前谢谢

SELECT pid, min(Price)
from table
Where Color='green'
group by pid
或者如果您想要整行(并且您的sql平台支持排名)

试试这个

SELECT  a.*
FROM    tableName a
            INNER JOIN
            (
                SELECT pid, min(price) minPrice
                FROM    tableName b
            ) c ON a.pid = c.pid AND
                    a.price = c.minprice
WHERE   a.color = 'green'

@用户1613224请查看以下内容:
SELECT  a.*
FROM    tableName a
            INNER JOIN
            (
                SELECT pid, min(price) minPrice
                FROM    tableName b
            ) c ON a.pid = c.pid AND
                    a.price = c.minprice
WHERE   a.color = 'green'