MySQL在select中统计相似的行

MySQL在select中统计相似的行,mysql,sql,Mysql,Sql,我有一个疑问: SELECT organisation.organisation as org, kund_nr as kundnrnr FROM anv_data INNER JOIN organisation ON organisation.ID = anv_data.organisation_id INNER JOIN anvandare ON anv_data.anvandare_id = anvandare.ID WHERE anv_data.indatum<='2013-10-

我有一个疑问:

SELECT organisation.organisation as org, kund_nr as kundnrnr
FROM anv_data
INNER JOIN organisation ON organisation.ID = anv_data.organisation_id
INNER JOIN anvandare ON anv_data.anvandare_id = anvandare.ID
WHERE anv_data.indatum<='2013-10-31' AND anv_data.indatum>='2013-10-01' AND anv_data.rp = '0'
GROUP BY MONTH(anv_data.indatum), anv_data.anvandare_id ORDER BY anvandare.anstallningsnr
我想修改查询,使其汇总具有类似组织的行,使其看起来像:

organisation    kundnr  sum
---------------------------
Företag1        123456  3
Företag2        789123  4
这可能吗?

试试:

SELECT A.org,A.kundnrnr,count(1) as sum
FROM(
    SELECT organisation.organisation as org, kund_nr as kundnrnr
    FROM anv_data
    INNER JOIN organisation ON organisation.ID = anv_data.organisation_id
    INNER JOIN anvandare ON anv_data.anvandare_id = anvandare.ID
    WHERE anv_data.indatum<='2013-10-31' AND anv_data.indatum>='2013-10-01' AND anv_data.rp = '0'
    GROUP BY MONTH(anv_data.indatum), anv_data.anvandare_id ORDER BY anvandare.anstallningsnr
     ) A
GROUP BY A.org,A.kundnrnr

当组织在kundnr上多次出现分歧时会发生什么情况?kundnrI上的group by是否尝试将其添加到group by中,恐怕没有什么变化。查看mysql soundex和类似sound_的函数:使用上面修改为COUNT1的示例,我得到:错误代码:1248。每个派生表都必须有自己的别名我知道Count*、Counttable.field和Count1之间有很大的区别。最好的方法是计数1。Patrik,使用Count table.field,用法取决于句子。table.field=primary key感谢您的回复,但它仍然会给我错误代码:1248。当我尝试时,每个派生表都必须有自己的别名。“field list”中的未知列“A.kund_nr”它确实生成了一个求和行,但计数太高了514和65我想知道它是否对所有列求和,而不是WHERE语句中指定的月份
SELECT A.org,A.kundnrnr,count(1) as sum
FROM(
    SELECT organisation.organisation as org, kund_nr as kundnrnr
    FROM anv_data
    INNER JOIN organisation ON organisation.ID = anv_data.organisation_id
    INNER JOIN anvandare ON anv_data.anvandare_id = anvandare.ID
    WHERE anv_data.indatum<='2013-10-31' AND anv_data.indatum>='2013-10-01' AND anv_data.rp = '0'
    GROUP BY MONTH(anv_data.indatum), anv_data.anvandare_id ORDER BY anvandare.anstallningsnr
     ) A
GROUP BY A.org,A.kundnrnr
 SELECT organisation.organisation as org, kund_nr as kundnrnr, COUNT(*) sum
 FROM anv_data
 INNER JOIN organisation ON organisation.ID = anv_data.organisation_id
 INNER JOIN anvandare ON anv_data.anvandare_id = anvandare.ID
 WHERE anv_data.indatum<='2013-10-31' AND anv_data.indatum>='2013-10-01' AND anv_data.rp = '0'
 GROUP BY organisation.organisation, kund_nr
 ORDER BY organisation.organisation