如何在同一查询中的一个表中获取不同类型的表中的行计数

时间:2013-07-04 13:35:40

标签: mysql sql

例如,该表包含列jobtype,我们需要对其进行计数。对于同一查询中的所有作业,同一jobtype行的行数相同。

3 个答案:

答案 0 :(得分:2)

你可以试试这个:

select jobtype, count(*) from your_table group by jobtype 
  union 
select 'My Total', count(*) from your_table;

这将给出结果(基于你的表格):

IT         5
Admin      10
Myv Total  15

答案 1 :(得分:0)

您可以创建2个int变量

$SQL = mysql_query('SELECT * FROM table');
$jobLookingFor = 'programmer';
$jobTypeSameCount = 0;
$jobTotalNumber = 0;

while($result =  mysql_fetch_array($SQL))
{
  if($result['jobtype'] === $jobLookingFor)
  {
    $jobTypeSameCount = $jobTypeSameCount + 1;
  }

  $jobTotalNumber = $jobTotalNumber + 1;
}

这是我的头脑,所以请原谅拼写错误。

while循环完成后

jobTypeSameCount将是您要搜索的相同作业的数量 jobTotalNumber将是包括相似和其他作业类型行的总行数。

编辑:从类似问题中尝试此解决方案

SELECT COL_1,COL_2,COL_3,COL_4,COUNT(*) 来自MyTable GROUP BY COL_1,COL_2,COL_3,COL_4

如果您想要清除没有重复的行:

SELECT COL_1,COL_2,COL_3,COL_4,COUNT() 来自MyTable GROUP BY COL_1,COL_2,COL_3,COL_4 有计数()> 1

at:How to find duplicate count among several columns?

答案 2 :(得分:0)

试试这个:

SELECT COUNT(*) AS same_duplicate_jobs ,job_type ,total_jobs = ( SELECT    COUNT(*) FROM      jobs) FROM      jobs GROUP BY  job_type HAVING    COUNT(*) > 1