我们可以使用group by和where字段名相同的条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们可以使用group by和where字段名相同的条件相关的知识,希望对你有一定的参考价值。

我有一个要求,例如必须提取用户选择的日期范围内的所有记录,并选择从2011年1月15日至2011年8月20日开始的所有员工并按日期分组。

我应该如何为此编写SQL查询:

  SELECT *
    FROM employees 
   WHERE startdate >= '15-jan-2011' 
     AND startdate <= '20-aug-2011'
GROUP BY startdate
答案

绝对。这将导致过滤您日期范围内的记录,然后按每天有数据的位置将其分组。

应该注意,您将只能选择开始日期,然后选择您要计算的任何汇总。否则,它应该可以正常工作。

例如,此查询将为您提供每个开始日期的雇员数:

SELECT startdate, count(*)
FROM employees 
WHERE startdate >= '15-jan-2011' 
      AND startdate <= '20-aug-2011'
GROUP BY startdate
另一答案

您可以,但是“ GROUP BY”子句用于将多组行组合在一起,因此对您的问题(或涉及“ SELECT *”的任何内容)没有意义。

不过要回答您的问题:

SELECT DATEADD(dd, 0, DATEDIFF(dd,0,StartDate)) AS 'StartDate', <other fields>
FROM   Employees
WHERE  StartDate BETWEEN '15-Jan-2011' AND '20-Jan-2011'
ORDER BY StartDate

注意:从日期开始剥离的时间来自here

另一答案

我对这个重录组有问题,因为他被阻止在哪里

[SELECT nreception,COUNT(article_id)as nbrarticle,fournisseur_id,numfact,SUM(quantite)为Quantiterecep,dateachat,SUM(prixTotal)作为prixTotal,来自库存,fournisseur,其中(fournisseur.idfr = stock.fournisseur_id)GROUP BY nreception“;

以上是关于我们可以使用group by和where字段名相同的条件的主要内容,如果未能解决你的问题,请参考以下文章

sql中order by和group by的区别

SQL中where和group by可以连用吗?having算是对检索条件的补充吗?

怎么使用group by?

group by...having count()的问题

having和group by的区别?

group by 多个字段