Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:使用计数选择不同的分组依据_Sql Server_Tsql_Select_Count_Distinct - Fatal编程技术网

Sql server SQL Server:使用计数选择不同的分组依据

Sql server SQL Server:使用计数选择不同的分组依据,sql-server,tsql,select,count,distinct,Sql Server,Tsql,Select,Count,Distinct,我有一张如下的桌子 我是否可以像上面那样输出 谢谢下面是MYSQL查询 从表\u name GROUP BY id中选择id、date、msg、COUNT(id)作为计数尝试以下查询: SELECT t1.id, t1.date, t1.msg, t2.msg_count FROM table_name t1 JOIN (SELECT max(msg_id) as mid, count(*) as msg_count FROM table_name GROUP BY id) as t2

我有一张如下的桌子

我是否可以像上面那样输出


谢谢

下面是MYSQL查询

从表\u name GROUP BY id中选择id、date、msg、COUNT(id)作为计数尝试以下查询:

SELECT t1.id, t1.date, t1.msg, t2.msg_count 
FROM table_name t1 
JOIN (SELECT max(msg_id) as mid, count(*) as msg_count FROM table_name GROUP BY id) as t2 
ON(t1.msg_id=t2.mid)

看起来您想要结果集中的最新日期,所以查询看起来像,
选择id、max(date)、msg、COUNT(id)作为sql server表\u name GROUP BY id的计数,尝试以下操作:

SELECT id, max(date) as date, msg, count(id) AS count 
FROM table_name 
GROUP BY id, msg

看起来您想要每个id的最新日期。但是您想要每个id的消息是什么?我假设在现实中,每个味精都不是简单的“味精…”味精。。。意思是像hi blabla这样的消息…表中有主键吗?我们不想要,消息可能是什么。我们想知道您是否希望显示最新消息,因为您希望显示最新日期。或者你的意思是史密斯/林达耶斯的所有记录中的信息都是相同的。有一个主键作为msg_id(整数)我真正的查询是选择tbl_msg.msg_id,tbl_msg.msg_发送者,tbl_msg.msg_接收者,tbl_msg.msg_内容,tbl_msg.msg_日期,tbl_用户,tbl_用户名,tbl_用户名从tbl_msg离开加入tbl_用户在tbl_msg.msg发送者=tbl_用户。用户号在哪里(tbl_msg.msg接收者='staff'))由TBLLS.MS.GGSOSEDER命令按TBLLS.MS.MSGYDATA DESTER,但错误列TBLYSMS.MSGYID在选择列表中无效,因为它不包含在聚合函数或GROUPBY子句中。请考虑向您的答案添加一些说明,仅仅粘贴一段代码片段可能解决眼前的问题,但不会增加任何理解或长期价值。
SELECT T.id, Q.max_date, count(T.msg)
FROM Table1 T, (select id, MAX(dateD) as max_date from Table1 group by id) Q
where Q.id=T.id
group by T.id, Q.max_date
;