2016-12-26 8 views
1

私は価格を保持するテーブルを持っています。この背後にあるアイデアは、ユーザーが商品に合っていると思う価格を提案させることです。私たちは、ほとんどの行の範囲が50000 to 506980であることがわかります。この表からほとんどの行の範囲を見つけるMYSQL

| id |price | 
|1 |1200 | 
|2 |50000 | 
|3 |50000 | 
|4 |45000 | 
|5 |506980| 
|6 |2000 | 

:だからたとえば、私はテーブル名tbl_Pricesを持って言うことができます。 私は、この範囲を見つけるクエリを考え出すことを望んでいました。

私はthis answerを見ました。それはかなり良いですが、いくつかの理由のために、私はオフセットを増やすことができない、私はやっとそれが生み出す、何が起こっているかを理解することができます:

|from_price|to_price|count| 
|499999 | 500003 |2 | 
|499998 | 500002 |2 | 
|499997 | 500001 |2 | 
|499996 | 500000 |2 | 
|500000 | 500004 |2 | 
|499996 | 450000 |1 | 
+1

は、私はその次の時間をメモを取ります – GurV

+0

画像の代わりにテキストデータを投稿してください、私はちょうどそれがすっきり画像 –

+0

を使用することだろうと思ったこの質問 – GurV

答えて

0

を私は以下のように定義された範囲ごとに合計を見つけるために解決策を考え出すしています:

SELECT 
CASE WHEN accountid BETWEEN 0 AND 216 THEN '0 to 216' 
WHEN accountid BETWEEN 217 and 319 THEN '217 to 319' 
WHEN accountid BETWEEN 320 and 429 THEN '320 to 429' 
WHEN accountid BETWEEN 430 and 539 THEN '430 to 539' 
WHEN accountid BETWEEN 540 and 649 THEN '540 to 649' 
WHEN accountid BETWEEN 650 and 759 THEN '650 to 759' 
WHEN accountid >= 860 THEN '860 +' END AS accountgroup, count(accountid) AS total 
FROM account 
GROUP BY accountgroup; 

出力は以下の通りです:

enter image description here

はそれに役立つことを願っています。ありがとう。

+0

これは良いですが問題は範囲を見つけることです –

+0

この場合、2つのクエリを書くことができます...最初のクエリでは範囲を見つけようとし、2番目のクエリでは私のソリューションを使ってケースクエリを作成します。私は範囲を見つけるために何か問題があるとは思わない。 – sAcH

+0

テーブルから最小値と最大値を取得し、差を計算して間隔を設定してください。範囲はmin-interval、interval-maxのようになり、2番目のクエリでこの範囲を使用してください。幸運。ありがとう – sAcH

関連する問題