所以我有一个表,它有一个名为Movement的列。我要做的是计算该列中每个ID出现在IDNumber中的次数
我可以为每个ID单独这样做:

SELECT COUNT(*)FROM movement WHERE IDNumber = 379;
SELECT COUNT(*)FROM movement WHERE IDNumber = 654;
SELECT COUNT(*)FROM movement WHERE IDNumber = 789;
SELECT COUNT(*)FROM movement WHERE IDNumber = 878;

但我想对IDNumber中的所有ID执行此操作,并在一个查询中执行此操作,因为我正在处理的实际数据集要大得多。那我该怎么做呢?
当我尝试这样做时,我创建了另一个表IDNumber,其中的列IDNumbers刚刚列出了ID中存在的所有不同ID,我这样做了:
INSERT INTO IDCount(`ID`,`Count`)
SELECT n.ID, m.COUNT(*)
FROM  movement m
JOIN IDNumbers n
ON n.ID = m.IDNumber

我希望结果是:
IDNumber   COUNT
379        2
654        1
789        1
878        1

这是它的SQL Fiddle
但我知道那是完全错误的。。。我该怎么做?任何帮助都将不胜感激,谢谢!!

最佳答案

怎么样:

SELECT IDNumber, Count(IDNumber) FROM movement
GROUP BY IDNumber

你没说要把它放在桌子上,对吧?

关于mysql - SQL-与INSERT INTO…SELECT和COUNT(*)混淆?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31036262/

10-11 04:44