mysql - SQL - 与 INSERT INTO...SELECT 和 COUNT(*) 混淆?

标签 mysql sql select count sql-insert

所以我有一个表 Movement,其中有一列名为 IDNumber。我想要做的是计算该列中每个 ID 的 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 执行此操作,并且在一个查询中,因为我正在处理的实际数据集要大得多。那我该怎么做呢?

当我尝试这样做时,我创建了另一个表 IDNumbers,其中有一列 ID,它列出了 Movement 中存在的所有不同 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/

相关文章:

python - 如何使用 MySQL Python Connector 确保 MySQL 连接返回到连接池?

sql - 从 case when 语句返回多行作为逗号分隔值

html - 在选择下拉列表中设置默认选定值 Vue.Js

mysql - 循环遍历 Laravel 中的数据库表返回结果

mysql - 如何在 Eloquent Query Builder (Laravel 4) 中按 "SUM"排序

php - 统计包含 X 和检查日期的 SQL 条目

mysql - SQL 调用临时表中的列

MySQL - 先按字母顺序排列字段,然后按小数点排列

sql - 从java中检索表中的最大列值

javascript - 使用 jquery,如何使用 find() 引用 multiple= true 的选择控件的 "option"数组?