2017-08-03 2 views
-3

「created_at」という名前の1つのカラムを持つテーブルが1つあります。今は月ごとにすべてのレコードグループに、今月から月単位で注文したい。mysqlクエリを作成して今月からデータを月別にソートする方法

SELECT count(id),MONTH(created_at) as month 
FROM `perks` 
GROUP BY created_at 
ORDER BY MONTH(created_at) 

とプットアウトは、次のとおりです:ここで

は、私がこれまで書いてきたMySQLのクエリで out put

私は月の8月を必要とする(8)これは、現在の月9である第一として、 10,11,12,1,2 ...など。

この問題を解決するお手伝いができますか?

+4

あなたのコードplsは私たちがあなたを助けることができるようになります。 –

+0

データスキーマを持たないクエリを書くのが難しい。そして1列の名前で十分ではありません。テーブルなし、データなし...クエリなし。また、そのような詳細を含めるように質問を編集した場合(サンプルデータと予想される出力の両方を含む)、試したものとどこに止まっているのかを含めます。 –

+0

これまでに何を試しましたか? –

答えて

0

あなたはjayminはあなたが

GROUP BY MONTH(created_at) 

回は今その必要性は除く前にある場合にも、where句を使用して月ごとにグループにではなく、時間を必要と示されているように

GROUP BY MONTH(CURRENT_DATE()) 
+0

月間の注文と、おそらく日付>があまりにも大きくなる可能性があります。 –

+0

@CaiusJard、ソリューションは動作しません。 GROUP BY MONTH(CURRENT_DATE())は、現在の月のみのデータを返します。ここでdate>は今日の日付よりも大きい日付を返します。私も古いデータが必要です。 – Chirag

1

使用することができます:

WHERE created_at > current_date() 

データに来年が含まれる場合は、おそらくが必要ですあなたが次の年が今年の8月に巻き込まれることに気をつけない限り、と注文もこれで終わります。

すべてを一緒に転がして、現在の月:

ORDER BY CASE WHEN MONTH(created_at) >= MONTH(current_date()) THEN 1 ELSE 2, MONTH(created_at) 
+0

正確に:)合意 –

関連する問題