所以我有一个表,它有一个名为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/