2017-07-17 2 views
0

J'essaye de créer une nouvelle table qui contient un compte pour une colonne spécifique. La colonne pour laquelle je veux compter contient différents noms d'organisation. J'ai créé une nouvelle table qui contient deux colonnes une pour le compte et une pour les noms d'organisation. Je peux faire fonctionner le compte, mais je n'arrive pas à comprendre comment l'insérer dans la table. C'est ce que j'ai actuellement:MySQL-Insérer le nombre dans une table

INSERT INTO ORG_countnumber (COUNT_number, OrgLBN) 
SELECT 
    COUNT(*), OrgLBN FROM ORG_NPI_HumanName_Add_Phone GROUP BY OrgLBN 
as COUNT_number, 
OrgLBN 
AS OrgLBN 
FROM ORG_NPI_HumanName_Add_Phone; 

Merci à l'avance!

+1

Une vue pourrait fonctionner mieux pour vous. – Kyle

+0

Pourquoi pas simplement ceci: 'INSERT INTO OR_countnumber (COUNT_number, OrgLBN) SELECT COUNT (*), OrgLBN FROM ORG_NPI_HumanName_Add_Phone GROUP BY OrgLBN' – Hackerman

Répondre

0

Vous avez placé le GROUP BY au mauvais endroit.

INSERT INTO ORG_countnumber (COUNT_number, OrgLBN) 
SELECT 
    COUNT(*) as COUNT_number, OrgLBN 
FROM ORG_NPI_HumanName_Add_Phone 
GROUP BY OrgLBN; 
1

Je pense que la première moitié de votre requête était sur la bonne voie:

INSERT INTO ORG_countnumber (COUNT_number, OrgLBN) 
SELECT COUNT(*), OrgLBN 
FROM ORG_NPI_HumanName_Add_Phone 
GROUP BY OrgLBN 

Mais comme cela a été suggéré dans le commentaire, une vue peut plus logique ici:

CREATE VIEW orgCountView AS 
SELECT COUNT(*), OrgLBN 
FROM ORG_NPI_HumanName_Add_Phone 
GROUP BY OrgLBN 

La raison pour laquelle une vue aurait du sens est que les comptages de votre table pourraient changer tout le temps, et donc les données dans la table ORG_countnumber pourraient facilement devenir obsolètes. Une vue vous permet d'obtenir les derniers chiffres sans valider une nouvelle table.