如何查询表中行的列匹配?

时间:2011-10-27 04:27:57

标签: mysql count

我正在试图弄清楚如何查询属于某个特定组的数字以用于统计目的。

有问题的表是:

create table MEMBER
  (  id       int           not null,
     name     varchar(10),
     bdate     date,
     sex       char,
     pc_id     int           not null,
   PRIMARY KEY (mid),
   FOREIGN KEY (pc_id) REFERENCES PLEDGECLASS(id))

我想提出一个检查所有行的查询,并返回常用pc_ids和相应pc_ids的计数。

例如,如果表成员包含以下数据:

{1,'jon',02091985,'M',02
2,'don',03091985,'M',03
3,'kon',03091985,'M',02
4,'tron',03091985,'M',03)

我希望返回以下内容:

count     pc_id
2            02
2            03

我认为我必须比较同一张桌子中的两张来计算它,但这对我来说并不适用。我想出了以下内容:

Select count(p.pc_id), P.pc_id
From   MEMBER p, MEMBER x
Where    p.pc_id=x.pc_id AND NOT p.name = x.name;

我知道我的明显错误有计数,但不太确定如何解决它。

1 个答案:

答案 0 :(得分:1)

GROUP BY会做到这一点

Select count(p.pc_id), p.pc_id
From   MEMBER p
Group By p.pc_id