2012-03-14 35 views
12

Tôi đang cố gắng để có được mã của tôi để đầu ra theo định dạng sau:nhóm theo tháng của trường timestamp unix

january 2012 - 34 
february 2012 - 23 

nơi 34 và 23 sẽ là một số trong tổng số hàng mà nằm trong tháng đó mà có id_dealership của 7. Tôi cần điều này để xuất tất cả dữ liệu cho mỗi tháng mà một nhiệm vụ đã từng được thực hiện.

Cấu trúc bảng assignments là như sau:

id_dealer (int) 
date_assigned (int) 

Tôi đã thử điều này, nhưng nó không hoạt động tại tất cả:

SELECT MONTH(date_assigned), YEAR(date_assigned), COUNT(*) 
FROM assignments 
GROUP BY MONTH(date_assigned), YEAR(date_assigned) 

Trả lời

41
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)) 
+0

bạn đá mông. :) – scarhand

+0

bạn sẽ có thể có một cái nhìn tại đây - http://stackoverflow.com/questions/9699533/group-by-month-and-year-count-from-another-table – scarhand

+0

Wow, tôi đã không nghĩ rằng điều này là có thể. Thanh danh! –

1

cột date_assigned của bạn nên được loại DATE. AFAIK THÁNG hoạt động trên cột ngày và nếu bạn muốn vào tên tháng từ việc sử dụng cột NGÀY: MONTHNAME(date_assigned)

+0

Đây không phải là giải pháp hoàn hảo của vấn đề nhưng hữu ích. –

0

thử truy vấn này

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

Bạn có thể giải thích vài từ về cách truy vấn này hoạt động – amarnath

Các vấn đề liên quan