如果这是重复的(很可能),我很抱歉。我花了很长时间搜索,找不到我的问题的确切答案。禁用GROUP BY列
我已经建立了返回无论是年,月或只是一年分组的行,根据不同的参数SQL函数(在MSSQL):
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