sql - 相似列出现次数

标签 sql sql-server count sql-insert

我是 SQL SERVER 的新手,需要您的建议。 我有一张包含商店信息的大 table 。这是 bench_id 列:

**bench_id**
31
51
51
61
61
61
71
71

我创建了另一个包含两列的小表:

**distinct_bench**           **number**
-----------------------------

31                               1
51                               2
61                               3
71                               2

第二个表的 NUMBER 列显示了 bench_id 的出现次数。 我试过这段代码:

insert into [dbo].BATCH_ID (batch_id, number)
select 
     distinct [dbo].big_table.batch_id,
           (select count([dbo].big_table.batch_id) from [dbo].big_table)
     from [dbo].big_table

但是无法得到我期望的 bench_id 出现次数的正确答案。 你能指出我做错了什么吗?

最佳答案

您需要有 GROUP BY 子句,因为您需要使用 COUNT() 来计算 benchID 的出现次数。

INSERT INTO BATCH_ID (distinct_bench), number)
SELECT  benchID as distinct_bench, COUNT(*) number
FROM    big_table
GROUP   BY BATCH_ID 

关于sql - 相似列出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538639/

相关文章:

c# - SQLDataReader 如何处理非常大的查询?

sql-server - 如何将 SQL Server 中的数据假脱机到不同工作表中的 Excel 文件

sql-server - 有没有办法在 sql server 2005 中检索 sa 密码

SQL 查询帮助 : Returning distinct values from Count subquery

mysql - 从 SQL 有序 ASC 中选择最后 20 行

mysql - 插入没有 id postgreSQL 的命令

mysql - 选择在另一个表中没有特定值的项目

Sql 列添加另一列

mysql - 更好的查询以选择计数位置

mysql - sql分类商品数量查询