我有一個表呼叫產品。例如,在此產品表中,有 2000 部 iPhone 11,但價格不同。這里最低價格是示例 400 美元,最高價格是 30000 美元
從這個范圍我需要總共 20 個范圍組按計數產品。例子
400 - 1520 = 10
1520 - 3040 = 20
-----
-----
28480 - 30000 = 23
我只能進行范圍查詢以在產品之間查找
SELECT * FROM products where price BETWEEN 400 AND 300000
這里如何通過兩個值之間的計數獲得 20 個范圍組?
uj5u.com熱心網友回復:
您可以使用該NTILE()功能將資料分成特定數量的組。
SELECT
bucket_no,
min(price),
max(price),
count(*)
FROM
(SELECT
price,
ntile(20)Over(order by price asc) as bucket_no
from table)A
group by bucket_no;
如果你想對每個類別的產品都這樣做,那么你可以partition by在NTILE()函式中使用。
請參閱此以進一步了解:https : //www.mysqltutorial.org/mysql-window-functions/mysql-ntile-function/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/316312.html
