sql >> Databáze >  >> RDS >> Mysql

SQL:Mohu odkazovat/přistupovat k datům aktuálního řádku ve funkci okna?

Za předpokladu, že používáte MySQL, a za předpokladu, že vaše tabulka má název test a za předpokladu, že oba sloupce jsou typu řetězce:

SELECT
  t1.id, count(t2.list)
FROM
(test t1 LEFT JOIN test t2 ON
  (t2.list LIKE CONCAT('%,', t1.id, ',%')) OR
  (t2.list LIKE CONCAT('%,', t1.id)) OR
  (t2.list LIKE CONCAT(t1.id, ',%')))
GROUP BY t1.id;

Upozorňujeme, že toto řešení může být velmi pomalé v závislosti na počtu záznamů, které máte, a v závislosti na průměrné délce řetězců v list pole.

Pokud potřebujete něco rychlejšího, myslím, že to nemůže být jediný dotaz. Možná bychom k tomu museli napsat uloženou proceduru nebo nějakou aplikační logiku nebo použít další tabulky či sloupce a řadu více příkazů SQL.



  1. Zobrazení průběhu při doInbackground

  2. Sloučit a seřadit dvě výmluvné sbírky?

  3. Chyba dynamického vstupu do Mysql pomocí PHP

  4. Oracle, nastavte datum a čas jako první den v měsíci