Single table Distinct
Multi-table GROUP by
Group by must be placed before order by and limit, or it will be an error
Let's take a look at the example below:
Table
ID Name
1 A
1 A
3 C
4 C
5 b
The library structure is probably like this, this is just a simple example, the actual situation will be much more complex.
For example, if I want to use a single statement to find all the data that name does not repeat, then you must use distinct to remove the redundant duplicate records.
Select distinct name from table
The resulting results are:
Name
A
B
C
It seems to be working, but what I want to get is the ID value? Change the query statement:
Select DISTINCT name, ID from table
The result would be:
ID Name
1 A
2 b
3 C
4 C
5 b
Why doesn't distinct work? The role is up, but he also functions two fields, that is, the ID and name must be the same to be excluded
Use the Count function:
Select *, COUNT (distinct name) from the table group by name
Results:
ID Name count (distinct name)
1 a 1
2 B 1
3 C 1
Finally: Thanks to this guy for sharing: http://www.cnblogs.com/Eleanore/archive/2011/12/28/2304981.html
SQL single table distinct/multi-table group by query remove duplicate records