Sql server 如何编写sql查询以计数?

Sql server 如何编写sql查询以计数?,sql-server,Sql Server,我想在一个日期内为count'noOfDistribution'编写一个查询 并通过参考。例如,2013年1月5日有2个。 此外,有人能推荐一些电子书/网站来学习高级技能吗 查询谢谢你的帮助 回答您的问题: SELECT input_Date, REFERENCE, count(*) FROM YourTable GROUP BY input_Date, REFERENCE 但这将导致与您所指出的不同,因为对于2013年2月5日,它将为引用计算6个元素null您可以这样做 select cou

我想在一个日期内为count'noOfDistribution'编写一个查询 并通过参考。例如,2013年1月5日有2个。
此外,有人能推荐一些电子书/网站来学习高级技能吗 查询谢谢你的帮助


回答您的问题:

SELECT input_Date, REFERENCE, count(*)
FROM YourTable
GROUP BY input_Date, REFERENCE

但这将导致与您所指出的不同,因为对于2013年2月5日,它将为
引用计算6个元素
null

您可以这样做

select count(Input_date) over (partition by Input_date,reference),*    from table
通过此项,您可以找到特定日期的计数,例如2013年1月5日有2个计数

替代方法

select date,reference,count(*) from table group by date,reference

当“Reference”有空值时,如何根据Reference获得NoOfDistribution的计数。第3-6行与第10-11行的区别是什么?(我假设是noOfDistribution,但看起来您可能已经手动输入了它,作为您希望查询返回的内容的示例,而不是表中的实际字段)如果它实际上是一个字段,则不需要返回计数,您需要返回实际的noOfDistribution,您可以使用distinct Why count来执行此操作。什么已经是一个count?@DanDonoghue,这是我在回答中评论的。我认为OP需要说明它们是否相同,或者向我们解释是什么使这些组不同I是模拟从peachtree导出的csv,3、6和10-11中的行是在不同的事务中输入的,所以我想问是否可以这样做?是否有一列来确定事务?最终的方法是选择不同的输入日期、引用、noOfDistribution、TransactionID,但如果您没有事务ID,那么这就破坏了这个想法。