Requête Sql pour Groupe par jour
Je veux la liste des toutes les ventes, et le groupe de la somme par jour.
Sales (saleID INT, amount INT, created DATETIME)
mise à Jour
Je suis à l'aide de SQL Server 2005
- Vous devez spécifier la base de données que vous utilisez, la date de fonctions sont différentes dans leurs dialectes SQL.
- Regardez ici pour plus d'informations sur le regroupement par jour. sqlserverlearner.com/2012/group-by-day-with-examples
Vous devez vous connecter pour publier un commentaire.
si vous utilisez SQL Server,
dateadd(DAY,0, datediff(day,0, created))
sera de retour le jour créépar exemple, si la vente créé sur "2009-11-02 06:12:55.000',
dateadd(DAY,0, datediff(day,0, created))
retour "2009-11-02 00:00:00.000'Pour SQL Server:
ou plus rapide (à partir de Q8-Coder):
Pour MySQL:
ou mieux (à partir de Jon Lumineux):
Pour Oracle:
ou plus rapide (à partir de IronGoofy):
Pour Informix (par Jonathan Leffler):
Si vous utilisez MySQL:
Si vous utilisez MS SQL 2008:
en fait cela dépend de ce SGBD que vous utilisez, mais dans le standard SQL
convert(varchar,DateColumn,101)
va changer le format DATETIME à ce jour (un jour)donc:
le magix nombre
101
est ce que le format de date, il est converti àSi vous utilisez SQL Server, vous pouvez ajouter trois champs calculés à votre table:
et maintenant vous pouvez facilement group by, order by, etc. par jour, du mois ou de l'année de la vente:
Ces champs calculés seront toujours mis à jour (lorsque votre "Créé" changement de date), ils font partie de votre table, ils peuvent être utilisés comme des champs, et peut même être indexé (si ils sont "PERSISTANTES") - une grande fonctionnalité qui est totalement sous-exploité, à mon humble avis.
Marc
Pour oracle, vous pouvez
comme cela tronque le créé datetime à la précédente minuit.
Une autre option est de
qui donne le même résultat, mais peut être plus lente car elle nécessite une conversion de type.
Pour PostgreSQL:
ou à l'aide de cast:
si vous voulez de la vitesse, utiliser la deuxième option et ajouter un index:
utiliser linq