我正在尝试计算名称和与之关联的ID 例如 姓名:乔恩史密斯 cnt:2 Id:1
第二个John Smith记录将有一个与之关联的不同ID。
我已经看过其他建议的解决方案并且已经走到了这一步:
select a.id, concat(a.firstname,' ',a.lastname) as name, b.cnt
from table a
join (select concat(firstname,' ',lastname) as bname, count(*) as cnt
from table by firstname,lastname) b
on a.name=b.bname
但是,sql发出一个错误,指出无效的列名'name'。 我知道只需使用一列来获取计数就可以得到所需的结果,然后为剩下的列做一个子查询。但是我需要它用于名称
答案 0 :(得分:2)
您无法在ServerAliveInterval
条件下使用别名。您可以先将其放在子查询中,也可以使用连接列:
root@server:~# sudo sshd -T
/etc/ssh/sshd_config: line 31: Bad configuration option: ServerAliveInterval
/etc/ssh/sshd_config: terminating, 1 bad configuration options
root@server:~# ssh -V
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7, OpenSSL 1.0.1f 6 Jan 2014
答案 1 :(得分:0)
你可以完全避免加入,不那么复杂:
Select
a.id
,concat(a.firstname,' ',a.lastname) as name
, (select
count(*)
from table b
where a.firstname = n.firstname
and a.lastname = b.lastname)
from table a
数不是标量,所以shoudl工作正常。或者只是使用你拥有的东西,并按上面的方式连接名字和姓氏(而不是连接)