Mysql
 sql >> Baza danych >  >> RDS >> Mysql

projekt tabeli + pytanie SQL

Nie rozumiem, dlaczego potrzebny jest klucz syntetyczny, więc zamiast tego użyję poniższej tabeli:

CREATE TABLE foodbar (
  user_id     INT NOT NULL
, created_at  date not null
, weight      double not null
, PRIMARY KEY (user_id, created_at)
);
SELECT curr.user_id, curr.weight - prev.weight
FROM foodbar curr, foodbar prev
WHERE curr.user_id = prev.user_id
  AND curr.created_at = CURRENT_DATE
  AND prev.created_at = CURRENT_DATE - INTERVAL '7 days'
;

składnia arytmetyczna dat jest prawdopodobnie nieprawidłowa, ale masz pomysł

patrz wyżej, dodaj ORDER BY curr.weight - prev.weight DESC i LIMIT N

na ostatnie dwa pytania:nie spekuluj, zbadaj plany egzekucyjne. (postgresql ma EXPLAIN ANALYZE , nie wiem o mysql) prawdopodobnie okaże się, że musisz zindeksować kolumny, które uczestniczą w WHERE i JOIN , a nie te, które tworzą zestaw wyników.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd sql:Konwersja typu danych varchar na typ danych data/godzina skutkowała wartością spoza zakresu

  2. Jaki jest błąd Każda tabela pochodna musi mieć swój własny alias w MySQL?

  3. MySQL dezaktywowany w Lampp, Xampp w Linuksie 12.04

  4. Uwzględnij dodatkowy licznik w zestawie wyników MySQL

  5. MySQL Wiele-do-wielu Wybierz