计算msql数据库中有多少行具有相同的值

时间:2019-03-10 15:23:58

标签: sql count

我正在尝试更新数据库中的字段nr:

我有:示例数据……

餐桌环

ID     ri             mr        nr
1                      a         0
2      a               b         0
3      a               c         0
4                      d         0
5      b               e         0
6      e               f         0

我需要一个查询该结果的总和,其中sum计算ri中mr apear的值的次数并更新此值的nr

结果应该像这样

ID     ri             mr        nr
1                      a         2
2      a               b         1
3      a               c         0
4                      d         0
5      b               e         1
6      e               f         0

4 个答案:

答案 0 :(得分:1)

您可以使用joingroup by

select t.*, coalesce(cnt, 0) as nr
from t left join
     (select mr, count(*) as cnt
      from t
      group by mr
     ) tt
     on t.mr = tt.mr;

答案 1 :(得分:1)

您可以使用查询来计算rimr匹配的次数

select 
  t.*, 
  (select count(*) from tablename where ri = t.mr) nr
from tablename t

如果nr列存在并且您要更新它:

update tablename t
set t.nr = (select count(*) from tablename where ri = t.mr)

如果您使用Mysql,则可以:

update tablename t
inner join (
  select mr, (select count(*) from tablename where ri = t.mr) counter from tablename t
) tt on tt.mr = t.mr
set t.nr = tt.counter 

请参见demo

答案 2 :(得分:0)

供更新使用

update tablename set nr = (select count(*) from tablename where ri = mr)

答案 3 :(得分:0)

UPDATE <rule name="RuleXYZ" stopProcessing="true"> <match url="(.*)\..+"/> <conditions logicalGrouping="MatchAll"> <add input="{URL}" negate="true" pattern="\.axd|\.jpg|\.png|\.css|\.js|\.ico$" /> <add input="{HTTP_X_Requested_With}" pattern="^XMLHttpRequest$" negate="true" /> </conditions> <action type="Redirect" redirectType="Temporary" url="/{R:1}" appendQueryString="false" /> </rule> a,(SELECT ri,COUNT(*)cnt                来自ring            分组方式ri)b

SET a.nr = b.cnt  Mr = b.ri“);

这项工作对我来说谢谢