• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Grupowanie danych - mySQL

VPS Starter Arubacloud
0 głosów
280 wizyt
pytanie zadane 16 lutego 2022 w SQL, bazy danych przez Sebastian Szyja Bywalec (2,810 p.)

Cześć,
Mam następująca tabelę w bazie danych: (https://wtools.io/paste-code/b936) - Chciałbym napisać zapytanie które wyświetli mi coś takiego: (https://ibb.co/MN2BydP). Czy macie jakiekolwiek pomysły? szukam po różnych forach podobnego tematu od 2 dni i nic nie mogę znaleźć :((

komentarz 16 lutego 2022 przez PreZmyK Pasjonat (21,470 p.)

Co Ty chcesz zliczyć? Dlaczego user_id 3 z website321 jest zliczany 2 razy? raz ma jednego COUNT'a a raz więcej?

Na moje oko to chyba o to chodzi:

SELECT user_id,website, MIN(date), MAX(date), COUNT(*) 
FROM activity
GROUP BY user_id, website
ORDER BY 1,2;

Wynik jest inny, bo nie wiem co tam liczysz? Jak coś innego, to pewnie wystarczy zjoinować.

komentarz 16 lutego 2022 przez Sebastian Szyja Bywalec (2,810 p.)
edycja 16 lutego 2022 przez Sebastian Szyja

Co minutę ajaxem do bazy danych wstawiam na jakiej podstronie jest użytkownik. i chciałbym wiedzieć jak długo dany użytkownik siedział na jednej podstronie jeżeli zmienił podstronę na inną to znowu tam siedział ileś minut. Trudno mi to wyjaśnić :((

EDIT: załóżmy, że chciałbym sprawdzić jakie podstrony odwiedzał użytkownik w ostatnich n dniach. chciałbym mieć listę minuta po minucie. Jeżeli użytkownik w ciągu 10 minut był na jednej podstronie chciałbym otrzymać jeden wiersz a nie 10 (minuta po minucie): 

user_id webiste date_start date_end count
2 exmaple.com/users/123 2022-02-16 08:00:00 2022-02-16 08:10:00 10

 

komentarz 16 lutego 2022 przez PreZmyK Pasjonat (21,470 p.)
Te zapytanie co napisałem źle pokazuje?
komentarz 16 lutego 2022 przez Sebastian Szyja Bywalec (2,810 p.)
tak, ponieważ pokazuje ile razy dany użytkownik odwiedził tą stronę. bez podziału na godziny tzn. gdy użytkownik odwiedził tą stronę o 8:00 później odwiedził o 8:01 inną stronę a póżniej znowu tą z godziny 8:00 wtedy zliczy się że odwiedził ją dwa razy a nie, że odiwedził raz o 8:00, pożniej odwiedził inną o 08:01 a następnie odiwedził tą z godziny 08:00 i był tam dwie minuty. Sorry za moję złe tłumaczenie :((
komentarz 16 lutego 2022 przez PreZmyK Pasjonat (21,470 p.)
Już rozumiem. To już chyba trzeba T-SQL, może jakiś kursor do zliczenia czasu sesji? Może jakaś funkcja okna? Ale żadna mi na chwilę obecną do głowy nie przychodzi, żeby to zrobić samym SQL
komentarz 16 lutego 2022 przez Sebastian Szyja Bywalec (2,810 p.)
myślałem że uda mi się zrobić to w mysqlu :)) ale dzięki wielkie za chęci od kilku dni szukam rozwiązania

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 428 wizyt
pytanie zadane 1 grudnia 2019 w SQL, bazy danych przez Mavannkas Bywalec (2,290 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 6 kwietnia 2021 w SQL, bazy danych przez yapyap Obywatel (1,730 p.)
0 głosów
1 odpowiedź 529 wizyt
pytanie zadane 29 czerwca 2019 w Java przez magicznyukf Początkujący (260 p.)

93,018 zapytań

141,988 odpowiedzi

321,281 komentarzy

62,364 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...