mysql如何跨服务器查询?
查询 select x,count(*) c from tab having c > 1;
删除 对x 加unique index , 使用 ignore .
MySQL如何实现按某字段的不同取值进行统计?
MySQL 中使用 Group By 可以轻松实现按某个或者某几个字段的不同取值进行分组统计。
我们以如下 学生信息表 Students_hobby_t为例,统计age字段获取不同年龄的学生数量。
SQL 语句如下,我们按照Age字段进行分组,并且使得结果按照Age字段降序排序:
上述SQL查询结果如下,实现了按照年龄字段的不同值进行统计:
mysql 按字段不同值进行统计最简单的方式是使用 group by
比如 TableA 表有字段 A(分别取值1,2,3,4,5)
统计 A字段 不同值的数量:
select A, count(1) '计数'
from TableA
group by A
order by A
;
统计 A字段 不同值的 合计知:
select A, sum(A) '合计'
from TableA
group by A
order by A
;
两种if 函数实现
另外一种:case when
SELECT a.periodid, a.periodseq, ifnull(CASE p_stautstype
WHEN 'inputflag' THEN inputflag
WHEN 'sdvflag' THEN sdvflag
WHEN 'dmflag' THEN dmflag
WHEN 'mrflag' THEN mrflag
WHEN 'inputsigflag' THEN inputsigflag
WHEN 'lockflag' THEN lockflag
WHEN 'frozenflag' THEN frozenflag
END, 'F') AS 'num'
FROM (
SELECT projectid, periodid, 0 AS periodseq
FROM edm_period
WHERE projectid = p_projectid
AND periodtype = 0
UNION
SELECT projectid, periodid, periodseq
FROM edm_form_status
WHERE (projectid = p_projectid
AND personid = v_personid
AND periodseq > 0
AND formid = 0)
) a
LEFT JOIN edm_form_status b
ON (a.projectid = b.projectid
AND a.periodid = b.periodid
AND a.periodseq = b.periodseq)
WHERE (a.projectid = p_projectid
AND rowid = 0
AND formid > 0
AND a.periodid = v_periodid
AND personid = v_personid)
select count(*) from edm_person where projectid=p_projectid and if(CHAR_LENGTH(p_personcode)>0,personcode=p_personcode,1=1) ;
mysql怎么统计各系学生人数?
示例如下:
select 系名字段,count(学生学号) from 表名
group by 系名字段
其中,count是用于计数的聚合函数,group by 用于对统计的字段分组。