ホームページ > データベース > mysql チュートリアル > SQL 結果を人間が判読できる形式で月と年ごとにグループ化するにはどうすればよいですか?

SQL 結果を人間が判読できる形式で月と年ごとにグループ化するにはどうすればよいですか?

DDD
リリース: 2024-12-29 02:07:17
オリジナル
840 人が閲覧しました

How Can I Group SQL Results by Month and Year in a Human-Readable Format?

月と年による SQL 結果のグループ化

SQL データベースを使用する場合、多くの場合、月や年などの期間ごとにデータをグループ化する必要があります。デフォルトでは、SQL の GROUP BY 句は、個々の月または年に基づいて行をグループ化します。ただし、「月-年」など、より人間が読みやすい形式で結果を表示する必要がある状況が発生する場合があります。

問題: グループ化された結果に月と年を表示する

データを月と年でグループ化し、次のように結果を表示するクエリがあるとします。

SELECT MONTH(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
ログイン後にコピー

このクエリは、最初の列にのみを表示する結果を返します。月、たとえば「9」。目標は、「9-2011」などの月と年を組み合わせた形式で表示するようにクエリを変更することです。

解決策: 日付値のキャスト

これを実現するには、次のようにします。 CAST 関数を使用して、月と年の値を文字列に変換します。

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, ...
ログイン後にコピー

月と年の値を文字列としてキャストすると、次のことができます。それらを、希望の「月-年」形式で月と年を組み合わせた 1 つの文字列に連結します。

代替解決策: 先頭のゼロ

月の値の先頭にゼロが必要な場合は、次のようにします。次の構文を使用できます:

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 
ログイン後にコピー

この式により、すべての月の値に先頭にゼロが付くようになり、結果がより一貫して視覚的になります。魅力的です。

以上がSQL 結果を人間が判読できる形式で月と年ごとにグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート