一些非常简单的事情,但我无法让它为我工作:)
select x.name, count(x.name) from <table_name> x where ...<complex and long>...
它会引发错误,即 x.name 未与 group by 一起使用。
select x.name from <table_name> x where ...<complex and long>...
工作正常并返回例如 6 个名称
select count(x.name) from <table_name> x where ...<complex and long>...
也可以正常工作并返回例如数字 6
但是当我尝试通过以下方式添加组时,组合不起作用:
select x.name, count(x.name) from <table_name> x where ...<complex and long>...
group by x.name
它有效,但所有计数都是 1 而不是 6。
问题是,我可以先将计数放入变量中,然后编写长 sql 语句来获取名称,但我不想编写长而复杂的 select 语句两次。必须有某种方法可以在一次选择中进行组合:获取所有名称,顺便告诉我他们有多少。
谢谢
附言
name bla1 bla2
a ... ...
a foo ...
b foo ...
c ... ...
d foo ...
d foo ...
b foo ...
c foo ...
x.name where bla1 = foo 的结果将是:
a
b
d
d
b
c
count(x.name) where bla1 = foo 的结果是:
6
我想要的结果:
...variable definitions
select @foundName = x.name, @numOfAllFoundNames = count(x.name)
from <table_name> x where ...<complex and long>...
应该是:@foundName = a(只是其中一个名字,不管是哪一个)@numOfAllFoundNames = 6