sql >> Database >  >> RDS >> Sqlserver

SQL AdvancedQuery

Iets als dit zou het moeten doen:

; WITH positions AS (
  SELECT MMSI
       , Message_ID
       , "Time"
       , Latitude
       , Longitude
  FROM   dbo.DecodedCSVMessages_Staging
  WHERE  Message_ID IN (1, 3)
  AND    Latitude  > 55
  AND    Latitude  < 85
  AND    Longitude > 50
  AND    Longitude < 141
)
, details AS (
  SELECT MMSI
       , Ship_Type
       , Vessel_Name
       , Row_Number() OVER (PARTITION BY MMSI ORDER BY "Time" DESC) As row_num
  FROM   dbo.DecodedCSVMessages_Staging
  WHERE  Message_ID = 5
)
SELECT positions.MMSI
     , positions.Message_ID
     , positions."Time"
     , details.Ship_Type
     , details.Vessel_Name
     , positions.Latitude
     , positions.Longitude
FROM   positions
 INNER
  JOIN details
    ON details.MMSI    = positions.MMSI
   AND details.row_num = 1 -- Limit to "latest" ship details per MMSI


  1. Hoe maak je een unieke willekeurige integer-ID voor de primaire sleutel voor een tabel?

  2. Om in te loggen GET of POST?

  3. Alternatief voor veel booleans in MySQL?

  4. Waarom moet de MySQL-connector nog steeds op de computer zijn geïnstalleerd, ondanks dat ik de juiste NuGet-pakketten heb?