Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Pobranie najniższej wartości historycznej
Forum PHP.pl > Forum > Bazy danych
shpyo
Hej.
Mam prosty system do monitorowania pozycji w Google. Chcę sobie dodać bajer który pokaże mi najlepszą pozycję dla danego słowa kluczowego + data.
Historię sprawdzanych pozycji trzymam w tej tabeli:

  1. CREATE TABLE history (
  2. history_id int( 7 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. domain_id int( 6 ) NOT NULL ,
  4. keyword_id int( 6 ) NOT NULL ,
  5. history_position varchar(100) NOT NULL ,
  6. history_date date NOT NULL ,
  7. history_time time NOT NULL
  8. );


Aby pobrać najlepszą pozycję (history_position) strzelam takie SQL:

  1. SELECT
  2. h.domain_id,
  3. h.keyword_id,
  4. h.history_date,
  5. MIN(h.history_position) AS best_position
  6. FROM
  7. history h
  8. WHERE h.domain_id = %d AND h.history_position > 0
  9. GROUP BY h.keyword_id
  10. ORDER BY h.history_date DESC;


No i to działa prawie dobrze. Na poniższym obrazku widać, że nie dla wszystkich fraz pobrać najniższą pozycją:

Dla frazy „blog seo” (3 od góry) powinienem dostać 8, a mam 10. Ktoś ma pomysł co robię źle?

trueblue
Zobacz jaki wynik tego zapytania dla frazy "blog seo" otrzymujesz bezpośrednio na bazie danych.
shpyo
Cytat(trueblue @ 16.03.2016, 09:41:06 ) *
Zobacz jaki wynik tego zapytania dla frazy "blog seo" otrzymujesz bezpośrednio na bazie danych.


Dodałem dodatkowy warunek h.keyword_id = %d i otrzymałem 10. Dziwne...

Zagadka rozwiązana:
history_position varchar(100) NOT NULL
Kurtyna.
Zmieniłem na INT i działa biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.