Notiz: Diverse SQL-Abfragen für den Komplex „InstaLOC“

(A) Statistiken, Allgemeines
(1) Komplettüberblick
select count(url) as Beiträge, count(distinct(username)) as Nutzer_innen, count(distinct(location)) as Locations, count(distinct(filter)) as Fotofilter, count(distinct(erstellzeit)) as Medienzeitstempel, sum(likes) as Summe_Likes, sum(comments) as Summe_Kommentare from locations;

(2) Überblick nach Locationfilter
select count(url) as Beiträge, count(distinct(username)) as Nutzer_innen, count(distinct(location)) as Locations, count(distinct(filter)) as Fotofilter, count(distinct(erstellzeit)) as Medienzeitstempel, sum(likes) as Summe_Likes, sum(comments) as Summe_Kommentare from locations where location like '%germany%';

(3) Überblick nach Tagfilter
select count(url) as Beiträge, count(distinct(username)) as Nutzer_innen, count(distinct(location)) as Locations, count(distinct(filter)) as Fotofilter, count(distinct(erstellzeit)) as Medienzeitstempel, sum(likes) as Summe_Likes, sum(comments) as Summe_Kommentare from locations where tag like '%hausbau%'

(4) Überblick nach Tag- und Locationfilter
select count(url) as Beiträge, count(distinct(username)) as Nutzer_innen, count(distinct(location)) as Locations, count(distinct(filter)) as Fotofilter, count(distinct(erstellzeit)) as Medienzeitstempel, sum(likes) as Summe_Likes, sum(comments) as Summe_Kommentare from locations where (tag like '%hausbau%') and (location like '%germany%');

(5) Auflistung der Nutzer_innen mit Summe der „produzierten“ Likes
select distinct(username) , Anz_Likes from(
Select username, sum(likes) as Anz_likes from locations GROUP BY username ) as my_table order by Anz_likes DESC;

(6) Auflistung der Nutzer_innen mit Summe der verbundenen Locations, absteigend
select distinct(username) , Anz_Locations from(
Select username, count(location) as Anz_Locations from locations GROUP BY username ) as my_table order by Anz_Locations DESC;

(7) Auflistung der Nutzer_innen+Location zzgl. der Medienanzahl (Summe), absteigend
select username , location , Anz_Locations from(
Select username, location, count(location) as Anz_Locations from locations GROUP BY username ) as my_table where location like '%berlin%' order by Anz_Locations DESC;

(8) Tiefenprüfung auf einen Useraccount+Anzahl-Postings/Locations, absteigend
select username , location , Anzahl_Postings from(
Select username, location, count(location) as Anzahl_Postings from locations GROUP BY username ) as my_table where (location like '%berlin%') and (username = 'share') order by Anzahl_Postings DESC;

(9) Stadtrecherchen aus den Themenweltendatenbanken
select location from locations where (location like '%titude":51.339%') and (location like '%itude":12.377%')
Hinweise:
– Beispiel ist Leipzig
– weitere Städte unter http://www.fwiegleb.de/geo-a.htm

(10) Bereinigte Ausgabe der Tagwolken
select distinct(REPLACE(tag,'%22','"')) as Tagwolke from locations;

(11) Bereinigte Ausgabe der Locations inkl. Aufsummierung der Likes
SELECT distinct(location) as Orte, Anz_Likes from(
Select location, sum(likes) as Anz_likes from locations GROUP BY location ) as my_table order by Anz_Likes DESC;

(12) Bereinigte Ausgabe der Locations inkl. Aufsummierung der Postings
SELECT distinct(location) as Orte, Anz_User from(
Select location, count(username) as Anz_User from locations GROUP BY location ) as my_table order by Anz_User DESC

Hinweise:
– Durch die DB-Struktur werden die Beiträge „username“ zugeordnet und „username“ = „Beitrag“.

(B) Recherchen: Tagwolken
(1) Auflistung aller Tagwolken mit Aufsummierung der Likes, absteigend

SELECT distinct(tag) as Tagwolke, Anz_Likes from(
Select tag, sum(likes) as Anz_likes from locations GROUP BY tag ) as my_table order by Anz_Likes DESC

Hinweise:
(a) Bei Recherche nach den Comments, kann „likes“ zu „comments“ ausgetauscht werden.
(b) Die Abfrage listet alle Tagwolken – ungefiltert – auf und sortiert die Ergebnisse nach der Summe der Likes, welche durch die Tagwolken „produziert“ wurden.

(2) Auflistung der Tagwolken nach Suche mit Aufsummierung der Likes, absteigend

SELECT tag as Tagwolke, Anz_Likes from(
Select tag, sum(likes) as Anz_likes from locations GROUP BY username ) as my_table where tag like '%leipzig%' order by Anz_Likes DESC

Hinweise:
(a) Bei Recherche nach den Comments, kann „likes“ zu „comments“ ausgetauscht werden.
(b) Die Abfrage listet alle Tagwolken – ungefiltert – auf und sortiert die Ergebnisse nach der Summe der Likes, welche durch die Tagwolken „produziert“ wurden.