mysql到具有混合字段的mssql分组

时间:2019-07-03 09:58:22

标签: mysql sql-server group-by

我想在ms-sql服务器上执行一个简单的查询,该查询在mysql中工作正常,但在Microsoft的东西上似乎是不可能的。

工作正常:

SELECT COUNT(event_date) AS Amount, event_date, DATE_FORMAT(event_date,'%y-%m-%d') AS Timestep 
FROM JRLOG 
GROUP BY Timestep;

仅当我从查询中删除event_date字段时有效

SELECT COUNT(event_date) AS Amount, event_date, FORMAT(event_date,'yyyy-MM-dd') AS Timestep 
FROM [JRLOG] 
GROUP BY FORMAT(event_date,'yyyy-MM-dd');

为什么我不能在MSSQL的GROUP部分中使用虚拟的Timestep字段?

我收到MSSQL错误:

  

event_date列在选择列表中无效,因为它不包含在聚合函数中,也不在GROUP BY子句中

是否可以在SELECT查询中带上event_date或其他字段?

1 个答案:

答案 0 :(得分:0)

我想你是说:

SELECT COUNT(event_date) AS Amount, event_date, FORMAT(event_date,'yyyy-MM-dd') AS Timestep 
FROM [JRLOG] 
GROUP BY event_date,FORMAT(event_date,'yyyy-MM-dd');

SELECT COUNT(event_date) AS Amount, MIN(event_date), FORMAT(event_date,'yyyy-MM-dd') AS Timestep 
FROM [JRLOG] 
GROUP BY FORMAT(event_date,'yyyy-MM-dd');