INPUT
这是我的名为'MYTABLE'的表 P3的值是不变的。但是P1和P2的值可以是任何整数!!!
AIM
我的目标是按城市和PROD分组,对于每个城市 - 产品组合,然后(对于每个城市产品)取最小值P3。 但我想在结果中保留P1和P2的值。
QUERY
到目前为止,我尝试了以下不提供我要查找的输出的查询。
SELECT CITY, PROD, MIN(P3)
FROM MYTABLE
GROUP BY CITY, PROD
结果显示2行。 2行是正确的但我松散了P1和P2列。
预期输出
所以我的问题是如何编写查询以保持P1和P2的值。 (见下图)
PS:我并不是绝对想在我的查询中使用'GROUP BY'。如果有另一种方法可以解决这个问题,那也会很棒。不知何故,我发现目标不是太复杂,但由于某种原因,我无法弄清楚(即使在看过互联网之后)如何解决这个问题。
答案 0 :(得分:1)
您希望根据city
的值,使用分区为每组prod
和p3
选择正确的行:
with cte as (select *, row_number() over(partition by city, prod order by p3) as rn
from table1)
select city, prod, p1, p2, p3
from cte
where rn = 1
您可以在行动here中看到它。
答案 1 :(得分:0)
我使用function ShowProduct()
{
$data = "Welcome to wordpress shortcode.";
return $data;
}
add_shortcode('products', 'ShowProduct');
窗口函数根据row_num
值对行进行排序,然后选择第一行:
p3