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