我有一個產品表,其中包含價格和主類別的列。如何從產品表中創建5個價格範圍
我想查詢我的數據庫發現有一個給定的類別(或所有類別)的價格範圍內。這次價格範圍將被分成價格範圍適當數量,即0〜£££5 5£10等等
我不能讓我的周圍如何做到這一點頭;我需要使用php來做到這一切嗎?爲了澄清,我希望最終結束,無論列出哪個類別,我都可以展示大概相同數量的產品的4個價格區間。我不能讓我的心靈軟弱周圍:(
我有一個產品表,其中包含價格和主類別的列。如何從產品表中創建5個價格範圍
我想查詢我的數據庫發現有一個給定的類別(或所有類別)的價格範圍內。這次價格範圍將被分成價格範圍適當數量,即0〜£££5 5£10等等
我不能讓我的周圍如何做到這一點頭;我需要使用php來做到這一切嗎?爲了澄清,我希望最終結束,無論列出哪個類別,我都可以展示大概相同數量的產品的4個價格區間。我不能讓我的心靈軟弱周圍:(
對於每個類別的最低和最高價格:
SELECT category, min(price) as min_price, max(price) as max_price
from Products
Group BY category
對於範圍直接在查詢中,你可以做這樣的事情
SELECT
category,
SUM(CASE WHEN price BETWEEN 0 AND 5 THEN 1 ELSE 0 END) as zero-five,
SUM(CASE WHEN price BETWEEN 5 AND 10 THEN 1 ELSE 0 END) as five-ten,
...
from Products
Group BY category
產量
Category zero-five five-ten
Cat1 2 4
Cat2 3 6
或
SELECT category, range, count(*)
FROM (
SELECT
category,
CASE WHEN price BETWEEN 0 to 5 THEN '0-5'
WHEN price BETWEEN 5 to 10 THEN '5-10'
...
ELSE '10+'
END as range
FROM products
)
group by category, range
產量
Category range count
Cat1 0-5 2
Cat1 5-10 4
Cat1 10+ 0
Cat2 0-5 3
Cat2 5-10 6
Cat2 10+ 0
得到了問題解決,謝謝 –
不知道你的表結構,但這會搶獨特的價格在你的產品表:
select distinct price from products order by price desc;
從這裏,我可能會開始使用PHP 。究竟如何,你更喜歡它們分解價格進入組
我打算把它分成5個左右的價格區間,每個價格區間的產品數量大致相等。 –
$sql = "
SELECT P1.category as category, min(P1.price) as min_price, max(P2.price) as max_price
FROM Products P1 join Products P2 on P1.category=P2.category
Group BY category
";
<table width="300" border="1">
<tr>
<td><b>category</b></td>
<td><b>min_price</b></td>
<td><b>max_price</b></td>
</tr>
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
//print data
?>
<tr>
<td><? echo $row['category']; ?></td>
<td><? echo $row['min_price']; ?></td>
<td><? echo $row['max_price']; ?></td>
</tr>
<?
}
?>
@crazy莎拉,請張貼你的餐桌結構,我們可以幫助更多。 – mongotop
連接是多餘的。 –
你好,表是一個zencart這裏的架構:http://www.zen-cart.com/wiki/index.php/Developers_-_Database_Schema –
是否有一組不同的具體價格? –