Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 如何使用每个磁贴的最大值和该磁贴中的ITEN数创建结果集_Sql_Mariadb_Postgresql 9.6 - Fatal编程技术网

Sql 如何使用每个磁贴的最大值和该磁贴中的ITEN数创建结果集

Sql 如何使用每个磁贴的最大值和该磁贴中的ITEN数创建结果集,sql,mariadb,postgresql-9.6,Sql,Mariadb,Postgresql 9.6,如果我有一张这样的桌子 id product_name price 1 product_1 5 2 product_2 10 3 product_3 100 4 product_4 200 5 product_5 9000 如果执行如下查询: select price, ntile(3) over(order by price) as rank from products order by pric

如果我有一张这样的桌子

id product_name  price

1   product_1     5    
2   product_2     10 
3   product_3     100
4   product_4     200   
5   product_5     9000     
如果执行如下查询:

 select  price,  ntile(3) over(order by price) as rank from products order by price.
它将产生大致如下的结果:

   id  product_name   price       rank

    1   product_1     5             1
    2   product_2     10            1
    3   product_3     100           2
    4   product_4     200           2
    5   product_5     9000          3
但是我想进一步扩展一下,得到每个图块的最大值和图块上的ITEN数

   price    items
    10       2
    200      2
    9000     1  // I think I won't use the last tile max value, but it's here anyway.

我没有得到我想要的结果的知识,所以我不需要什么帮助。

使用聚合怎么样

select max(price), count(*)
from (select price,  ntile(3) over (order by price) as rank
      from products
     ) p
group by rank
order by price

需要注意的是:
ntile()
会创建大小相等的存储箱,因此边界值可能会在多个存储箱之间分割。

它是哪一个?MariaDB还是PostgreSQL?两者都可以,我正在使用在线工具运行查询。