web-dev-qa-db-ja.com

UNIXタイムスタンプフィールドの月でグループ化

コードを次の形式で出力しようとしています。

january 2012 - 34
february 2012 - 23

ここで、34と23は、id_dealershipが7である、その月に含まれる合計行の数です。これは、割り当てが行われた毎月のすべてのデータを出力するために必要です。

assignmentsテーブル構造は次のとおりです。

id_dealer (int)
date_assigned (int)

私はこれを試しましたが、まったく機能しません:

SELECT MONTH(date_assigned), YEAR(date_assigned), COUNT(*)
FROM assignments
GROUP BY MONTH(date_assigned), YEAR(date_assigned)
13
scarhand
SELECT 
  MONTH(FROM_UNIXTIME(date_assigned)), 
  YEAR(FROM_UNIXTIME(date_assigned)), 
  COUNT(*)
FROM assignments
GROUP BY 
  MONTH(FROM_UNIXTIME(date_assigned)), 
  YEAR(FROM_UNIXTIME(date_assigned))
49
Eugen Rieck

Date_assigned列のタイプはDATEである必要があります。 AFAIK MONTHは日付列で機能し、DATE列の月名が必要な場合は、次を使用します:MONTHNAME(date_assigned)

1
giorashc

このクエリを試してください

SELECT 
  MONTH(FROM_UNIXTIME(date_assigned)), 
  YEAR(FROM_UNIXTIME(date_assigned)), 
  COUNT(*)
FROM assignments
GROUP BY 1,2
0
Sergeev Alexey