我有一個名爲數據庫表user_transaction
,其結構如下:如何使用SQL查詢顯示以下方案的月結果?
transaction_id mediumint(6) UNSIGNED (PK)
transaction_no varchar(55)
transaction_cc_avenue_no varchar(55)
transaction_card_category varchar(100)
transaction_user_id varchar(32)
transaction_user_name varchar(255)
transaction_user_email_id varchar(255)
transaction_deal_code varchar(10)
transaction_dc_id smallint(4)
transaction_amount float(10,2)
transaction_discount float(10,2)
transaction_total_amount float(10,2)
transaction_data_assign enum('0', '1')
transaction_status enum('success', 'inprocess', 'fail', 'cancelled')
transaction_date bigint(12)
transaction_update_date bigint(12)
transaction_update_user_id varchar(32)
我使用UNIX時間戳值的日期存儲在列transaction_date
。現在我想顯示月份編號。對於表中存在的所有transaction_dates,不同transaction_status(即,總交易發生在每個日期,狀態'success','inprocess','fail'和'cancelled')的交易總數。這些記錄應按月份分組。爲了得到這個結果,我嘗試了很多,但沒有取得任何成功。爲您的參考我給我的查詢下面:
SELECT COUNT(*) `total count`, SUM(transaction_status = 'success') `success`, SUM(transaction_status = 'inprocess') `inprocess`, SUM(transaction_status = 'fail') `fail`, SUM(transaction_status = 'cancelled') `cancelled` FROM user_transaction GROUP BY FROM_UNIXTIME(transaction_date)
任何人都可以在這方面幫助我嗎?提前致謝。
@Eric Wich&@D Mac:我想顯示月份沒有。好。那麼我應該如何編寫查詢? – PHPLover
我已經更新了我的答案,以顯示年份和月份(您需要一年的時間,以便在每年的變化中對月份進行消歧)。 –
@Eric Wich:通過使用您的查詢,我得到的不是每月的datewise結果。 – PHPLover