J'ai une table avec 4 colonnes énormes numéros d'enregistrements. Il a la structure suivante:
DATE_ENTERED EMP_NAME DATA ORIGINATED 01-JAN-20 A 545454 APPLE
4 Réponses :
SELECT Year, Month, COUNT(*) FROM ( SELECT YEAR(DATE_ENTERED) Year MONTH(DATE_ENTERED) Month DAY(DATE_ENTERED) Day FROM your_table WHERE DAY(DATE_ENTERED) = 1 ) A GROUP BY Year, Month Generally WHERE DAY(DATE_ENTERED) = 1 will get you the records only for dates at the start of each month. Thus using Year and Month function you can group them by in order to get a count for each year and each month
Vous pouvez utiliser quelque chose comme ceci: pour le nombre de comptes utilisez ceci: p> update forte > p> Voici comment les données ressemblent à: p> Pour la liste des enregistrements p>
Mais op ne semble pas avoir un champ day_of_month, seulement un champ DateTime régulier. Cela semble être le point de la question.
Correct je n'ai pas de jour de colonne_of_month
J'utilise Oracle DB Son jour de lancement est un identifiant invalide
@HEMANTHTANNA: C'est pourquoi vous devez toujours spécifier le produit DBMS que vous utilisez: Pour éviter les réponses qui ne fonctionnent pas pour vous
@HEMANTHTANNA Il a fallu du temps pour le savoir! Faites-moi savoir si cela fonctionne. J'ai mis à jour la réponse dans la section Mise à jour.
Bonjour Manju Vous êtes juste en train de donner au total tout le nombre de données pour tous les premiers mois combinés. Je vais essayer de compter pour le premier jour de la première journée de chaque mois pour le mois respectif.
@HEMANTHTANNA J'ai mis à jour le code maintenant (Update-2), laissez-moi savoir si c'est ce dont vous avez besoin.
Vous voulez dire quelque chose comme Vous pouvez également utiliser datation_entred entre "yyyy0101" et "yyyy1231" code> (remplacez le yyyy avec l'année que vous souhaitez récupérer des données pour) au lieu de année (date_entred) = quelque_year code>, si la performance est un problème. p> p>
dans Oracle, vous pouvez utiliser la fonction trunc code> à la date de la date suivante: SELECT TRUNC(DATE_ENTERED), COUNT(1) AS CNT
FROM YOUR_TABLE
WHERE TRUNC(DATE_ENTERED) = TRUNC(DATE_ENTERED, 'MON')
GROUP BY TRUNC(DATE_ENTERED, 'MON')
Vous devez modifier le groupe SELECT QUERY Group par CODE> et SELECT CODE> sont différents et il lancera le groupe par erreur.
Quelle est votre requête réelle? Vous pouvez choisir la date et le mois manuellement ou avez besoin de quelque chose pour tirer dynamiquement des enregistrements?
Quel produit DBMS utilisez-vous? "SQL" est juste une langue de requête, pas le nom d'un produit de base de données spécifique. Veuillez ajouter un tag pour le produit de base de données que vous utilisez. Pourquoi devrais-je marquer mon DBMS
Quelle est la sortie que vous voulez? Une ligne pour chaque mois?
J'utilise Oracle DB et j'ai besoin d'une ligne pour chaque premier jour du mois.
@HEMANTHTANNA Il a fallu du temps pour le savoir! Faites-moi savoir si cela fonctionne. J'ai mis à jour la réponse dans la section Mise à jour.
@HEMANTHTANNA J'ai mis à jour ma réponse sous Update-2, si c'est ce que vous attendez, faites-le-moi savoir.