sql >> Database >  >> RDS >> PostgreSQL

Retourneer elke n-de rij uit de database met ActiveRecord in rails

Ik denk dat je op zoek bent naar een zoekopdracht zoals deze:

SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0

Dit is moeilijk te bouwen met ActiveRecord, dus je zou kunnen worden gedwongen om iets te doen als:

@widgetstats = self.widgetstats.find_by_sql(
  %{
    SELECT * FROM
    (
      SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id
    ) AS stats
    WHERE mod(rownum,3) = 0
  }
)

U wilt natuurlijk de gebruikte volgorde wijzigen en eventuele WHERE-clausules of andere wijzigingen toevoegen om aan uw behoeften te voldoen.



  1. mysql selecteer update

  2. Verduidelijking op rijnum

  3. EF6 met MySQL. De opgegeven sleutel was niet aanwezig in het woordenboek

  4. C# opsomming naar postgres opsomming