0

我想编写一个查询来提取一组结果。在这样做的同时,我希望能够对某个字段中某个值的出现次数进行计数。我正在尝试从设备表中提取零件号记录,从表中提取了各种零件号。

例如这是我的结果集

CISCO1841
CISCO2610
CISCO2650 
CISCO2610
CISCO2650
CISCO2500

我应该跟踪

CISCO1841发生了一次,CISCO2610发生了两次,CISCO2650发生了两次,CISCO2500发生了一次。我需要存储此计数并根据此计数设置另一个列值。在 MYSQL 中有没有一种有效的方法来做到这一点?

4

2 回答 2

1

对您的查询和结果进行分组COUNT()

SELECT myColumn, COUNT(*) FROM myTable GROUP BY myColumn

sqlfiddle上查看。

于 2013-05-23T14:17:47.783 回答
0

您可以在插入数据的表上使用触发器,该触发器将通过更新单独表中每个单词的计数器(例如:CISCO2650)来保持出现次数。

或者您可以尝试如下查询,但它不是动态的:

SELECT 
    SUM(IF(M_PART_NBR = 'CISCO2610',1,0)) as NBR1, 
    SUM(IF(M_PART_NBR = 'CISCO2811',1,0)) as NBR2,
    SUM(IF(M_PART_NBR = 'CISCO2911',1,0)) as NBR3
FROM 
    C2_INST_PRODUCT WHERE M_PART_NBR LIKE '%CISCO2%' 
于 2013-05-23T14:23:41.903 回答