简体   繁体   中英

SQL count not return all rows, phpmyadmin add LIMIT but not show it in the query

I have a query:

select lr2.event_id as ce
from data_requests as lr2 
group by lr2.event_id, 

that returns 88 rows. Then I tried the following:

select count(lr2.event_id) as cc, lr2.event_id as ce 
from data_requests as lr2 
group by lr2.event_id

but it only returned 25 rows, so I am really puzzled, where did other 63 rows go.

I tried it in sqlfiddle, it seems to work correctly, but on my server it just doesn't, so it must be a setting or something... Feels like the server calculates the count after it select a subset of all group results. weird.

if you want to count the number of rows for each lr2.event_id you must use count(*) , not count(lr2.event_id) . Remember, you are counting rows.

Function of GROUP BY

The SQL GROUP BY clause is used in collaboration with the SELECT statement to arrange identical/similar/equal data into groups.

Demonstration
If I have table like below, then 1st query will give same output as table definition:

ce
--
1
2
3
4
5

And 2nd query will give output as,

cc |ce
--- ---
1   1
1   2
1   3
1   4
1   5

Since, all are distinct in Table, I got 5 rows! but If some ce values are repetitive as,

ce
--
1
2
1
2
2

then, 2nd query will give output as:

cc |ce
--- ---
2   1
3   2

And here If I get shocked where did other 3 rows go ? Then I need to study! Of course, it's a spoon feeding! OP needs to study about GROUP BY in SQL.

我的不好,这似乎是phpmyadmin问题,我在phpmyadmin中运行查询,并且它在每个查询的末尾自动添加了一个限制

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM