我想写一个查询来提取一组特定的结果。在这样做的同时,我希望能够在某个字段中保留某个值出现的次数。我正在尝试从设备的表中提取零件号的记录,有各种从表中提取的零件号。
例如,这是我的结果集
CISCO1841
CISCO2610
CISCO2650
CISCO2610
CISCO2650
CISCO2500我应该记录下来
CISCO1841出现1次,CISCO2610出现2次,CISCO2650出现2次,CISCO2500出现1次。我需要存储这个计数,并根据这个计数设置另一个列值。在MYSQL中有没有一种有效的方法来做到这一点?
发布于 2013-05-23 22:17:48
对查询进行分组并对结果执行COUNT()操作:
SELECT myColumn, COUNT(*) FROM myTable GROUP BY myColumn请在sqlfiddle上查看。
发布于 2013-05-23 22:23:42
您可以在插入数据的表上使用trigger,该触发器将通过在单独的表中更新每个单词(例如: 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%' https://stackoverflow.com/questions/16716222
复制相似问题