これが重複している場合はお詫び申し上げます。私は検索中にかなり時間を費やしていて、私の質問に正確な答えを見つけることができません。GROUP BY列を無効にする
私は引数に応じて、いずれかの年、月または年だけでグループ化された行を返します(MSSQLで)SQL関数内蔵されている:
CREATE FUNCTION get_report (@grouping VARCHAR(30))
RETURNS TABLE
AS
RETURN
(
SELECT
YEAR(t.my_date) as my_year,
CASE when @grouping = 'monthly' THEN MONTH(t.my_date) ELSE null END as my_month,
count(t.row_id) as num_rows,
round(avg(my_val),4) as avg_my_val
FROM
my_schema.my_info t
GROUP BY
year(t.my_date),
CASE when @grouping = 'monthly' THEN month(t.my_date) ELSE null END
)
これは、月によって私のグループ化を与えることに成功したのか、レポートをどのようにしたいかに応じて、
しかし、理想的には、@grouping = 'none'
にグループ化を完全に排除してアイテムのリストを表示するというオプションが必要です。私はこのクエリがあまりにも多くのことを強制しようとしている可能性がありますが、そうでないかもしれません。私はGROUP BY 0
のようなものを試しましたが、それは私が望むことをしません。そして、GROUP BY rand()
はあまりにも面倒です。
提案がありますか?
MSSQL、申し訳ありません私は – Stephen
私の答えをチェックしにこれを追加します、ありがとうございました。 –
が完了してください質問 – Stephen