Count occurrences in Access query - ms-access

I am looking to see if its possible to run a count in an Access Query.
I have a list of data under TeamName
TeamName
----------
Liverpool
Liverpool
Liverpool
Liverpool
Liverpool
Manchester
Manchester
Newcastle
Newcastle
Stoke
Stoke
Stoke
I would you like a formula in Access that counts the number of occurrences in chronological order, so like below
TeamName Count
-------- -----
Liverpool 1
Liverpool 2
Liverpool 3
Liverpool 4
Liverpool 5
Manchester 1
Manchester 2
Newcastle 1
Newcastle 2
Stoke 1
Stoke 2
Stoke 3
I've added a screenshot to see if that helps

Since you don't have any column that can be used to order the team names with the same name you have to first add such a column:
ALTER Table YourTable ADD TeamID AUTOINCREMENT(1,1);
now your table has a numeric id that you can use in a query to rank items with the same name like so:
select
teamname,
(select count(*)
from yourtable as t2
where t1.teamid > t2.teamid
and t1.teamname = t2.teamname
) + 1 as rank
from yourtable t1;

Related

MySQL query to count occurrences on days of the year

I have a (large) table like this:
id venue city date time
1 Waldorf Hotel London 2020-01-01 07:00
2 Waldorf Hotel London 2020-01-02 07:00
3 Heathrow London 2020-01-02 14:00
4 Lennon Airport Liverpool 2020-01-02 16:00
5 Port of Liverpool Liverpool 2020-01-02 19:30
6 Port of Liverpool Liverpool 2020-01-03 07:00
7 Port of Liverpool Liverpool 2020-01-04 07:00
8 Port of Liverpool Liverpool 2020-01-05 07:00
9 Port of Liverpool Liverpool 2020-01-06 07:00
10 Manchester Airport Manchester 2020-01-06 12:40
11 Heathrow London 2020-01-06 14:40
So this person has been in Liverpool on 5 different days, in London on 3 different days, and in Manchester on 1 day only.
I am looking for a query that gets me this number of days that a certain city has been visited, resulting in this list:
Liverpool 5
London 3
Manchester 1
But now I'm stuck at this query that counts the occurrences per day and I can't get it right:
SELECT city, COUNT(city) AS value FROM visits WHERE YEAR(dt) = 2020 GROUP BY city, DATE(dt)
One way to achieve this is to select all the distinct city/date combinations in a subquery and then count the occurrence of each city:
SELECT city, COUNT(city) AS value
FROM (
SELECT DISTINCT city, DATE(dt)
FROM visits
WHERE YEAR(dt) = 2020
) v
GROUP BY city
Output:
city value
Liverpool 5
London 3
Manchester 1
Demo on SQLFiddle

How to count number of occurrence in a filed table

if I have a table with a field City like this:
City
------
London
Los Angeles
London
Athens
Rome
Paris
Paris
How could I get this result?
City | CityNumb
-------------------
London 2
Athens 1
Los Angeles 1
Paris 2
Rome 1
select City, count(*) as CityNumb
from your_table
group by City
Above image shows the SQL query and results for above task

counting occurrences in an SSRS table

Working on SSRS. Have the following data set.
ID City Country
1 London England
2 Glasgow Scotland
3 Aberdeen Scotland
4 Swansea Wales
5 London England
6 Glasgow Scotland
7 Glasgow Scotland
8 Manchester England
Would like to have a table, grouped by the city and showing how many occurrences there have been for each city, see below?
City Country Total
Glasgow Scotland 3
London England 2
Manchester England 1
Swansea Wales 1
Aberdeen Scotland 1
How would i go about doing this please?
After creating a group of City use the following expression:
=COUNT(Fields!City.Value,"City")
Let me know if this helps.
It seems from your question that you don't want the detail in the report, only the summary data. If you do want detail, Alejandro Zuleta's answer will work. If you don't need the detail, you can do the grouping in your dataset:
select city, country, count(*) as total
from <yourtable>
group by city, country;

Grouping by and ordering by an aggregate column

I'm creating a SSRS report and have the following data set.
ID City Country
------------------------------
1 London England
2 Glasgow Scotland
3 Aberdeen Scotland
4 Swansea Wales
5 London England
6 Glasgow Scotland
7 Glasgow Scotland
8 Manchester England
I have a COUNT on the 'City' and grouped by City and Country. This is how I would like it to appear
City Country Total
--------------------------------------------
Glasgow Scotland 3
London England 2
Swansea Wales 1
Aberdeen Scotland 1
Manchester England 1
However, this is how it's appearing
City Country Total
--------------------------------------------
Swansea Wales 1
Glasgow Scotland 3
3
3
Aberdeen Scotland 1
Manchester England 1
London England 2
2
So I need to group by the aggregate total column and also order by that column but not sure how to do it. All help appreciated, thanks.
Have tried Sanjays answer below, unless I'm doing it wrong I'm getting this error.
here
we need to create city and country as group and delete detail section from row groups as like below
so table look like after above changes
and set Count(Fields!ID.Value,"CITY") sd sorting expression for first group city1 with order Z to A
There are multiple ways you could go about this. One option would be to handle the grouping in the query and simply display the results in SSRS. So your query would look something like this:
SELECT ID, City, Country, COUNT(*) as Total
FROM MyTable
GROUP BY ID, City, Country
Now in SSRS you can sort by the Total column since it's not being aggregated in the report.

mysql: ORDER BY number of occurrences of an element in a column of mysql table

Can someone please help me to 'ORDER' a mysql table according to the no. of occurrences of a string in one of the columns of same table.
I want to rearrange the table according to the number of times a location has occurred.
Please see the example below:
id name location
-- ----- --------
1 Mark US
2 Mike US
3 Paul Australia
4 Pranshu India
5 Pranav India
6 John Canada
7 Rishab India
Expected result:
id name location
-- ----- --------
4 Pranshu India
5 Pranav India
7 Rishab India
1 Mark US
2 Mike US
3 Paul Australia
6 John Canada
I tried this query:
SELECT *, COUNT(location) AS count FROM `tablename` GROUP BY `location` ORDER BY count DESC;
But it showed me the following result omitting the repeating occurrence of location:
id name location
-- ----- --------
4 Pranshu India
1 Mark US
3 Paul Australia
6 John Canada
SELECT x.*
FROM my_table x
JOIN (SELECT location, COUNT(*) total FROM my_table GROUP BY location) y
ON y.location = x.location
ORDER
BY total DESC
, id;