0

毎月と国に基づいて購入したアイテムの数を取得するクエリがあります。

SELECT   COUNT( `country` ) as item,
         `country`,
         MONTH(purchase_date) AS Month,
         YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='20112'
GROUP BY country,MONTH(purchase_date)
ORDER BY country ASC

私はこれを結果として得ます。

 item   country  Month  year
    2   India       5   2012
    1   India       6   2012
    1   Malasiya    5   2012
    3   Singapure   1   2012
    1   Singapure   4   2012

「国」を繰り返し取得したくありません。それを行う方法はありますか。

4

2 に答える 2

1

期待する出力が明確ではありません。MONTH(purchase_date)しかし、あなたはから削除することができますGROUP BY country,MONTH(purchase_date)

SELECT   COUNT( `country` ) as item,
     `country`,
     MONTH(purchase_date) AS Month,
     YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='2012'
GROUP BY country
ORDER BY country ASC

これはあなたに明確な国を与えるでしょう。しかし、1つの国にもっと多くの場合、それはあなたにどんな月と年も与えるでしょう。

編集

月と年を1行のコンマで区切ってリストする場合は、次のようにしてください。

SELECT   COUNT( `country` ) as item,
     `country`,
     group_concat(MONTH(purchase_date)) AS Months,
     YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='2012'
GROUP BY country
ORDER BY country ASC

この例を参照してください:SQLFiddle

于 2012-05-09T12:38:23.143 に答える
0

次のように、group_concat を試してください。

SELECT   COUNT( `country` ) as item,
         `country`,
         GROUP_CONCAT(MONTH(purchase_date)) AS Months,
         YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='2012'
GROUP BY country
ORDER BY country ASC
于 2012-05-09T12:58:55.790 に答える