より大きいおよびより小さいのQBE演算子

QBE演算子_gt_gte_ltおよび_lteを使用して、簡単な例でカー・レース・データセットから特定のデータをフィルタリングする方法について説明します。

360ポイント以上を獲得しているドライバの詳細をフェッチするシナリオについて考えてみます。これを実現するには、QBE演算子「_gt」を使用します:

例3-5 _gt演算子

SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
    driver (
        check: {
            points: {_gt: 360}
        }
    )
    {
        id: driver_id
        name
        points
    }
');

このコードは、driver表にアクセスし、points360より大きいドライバをチェックして、idnameおよびpointsを取得します。

DATA                                                                           
--------------------------------------------------------------------------------
{                                                                              
  "id" : 102,                                                                  
  "name" : "Oscar Piastri",                                                    
  "points" : 384                                                               
}                                                                              
                                                                                 
{                                                                              
  "id" : 105,                                                                  
  "name" : "Max Verstappen",                                                   
  "points" : 456                                                               
}                                                                              
                                                                                 
 
2 rows selected.

または、すべてのチームの詳細を取得することもできます。さらに、各チームで100ポイント以下を獲得しているドライバを見つけます。この例では、ネストした表に対してcheck句を使用しています:

例3-6 _lte演算子

SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
    team {
        id: team_id
        name
        points
        underPerformingDrivers: driver (
            check: {
                points: {_lte: 100}
            }
        )
        {
            driverName: name
            points
        }
    }
');

前述の例は、teamidnameおよびpointsをフェッチします。次に、獲得したポイントが100以下であるチーム内のパフォーマンスが低いドライバのリストを作成し、nameおよびpointsteamのデータとともに表示します。


DATA                                                                           
--------------------------------------------------------------------
{                                                                              
  "id" : 301,                                                                  
  "name" : "McLaren Mercedes",                                                 
  "points" : 666,                                                              
  "underPerformingDrivers" :                                                   
  [                                                                            
  ]                                                                            
}                                                                              
                                                                                 
................................
................................                                                                             
                                                                                 
{                                                                              
  "id" : 309,                                                                  
  "name" : "Williams Mercedes",                                                
  "points" : 17,                                                               
  "underPerformingDrivers" :                                                   
  [                                                                            
    {                                                                          
      "driverName" : "Alexander Albon",                                        
      "points" : 12                                                            
    },                                                                         
    {                                                                          
      "driverName" : "Logan Sargeant",                                         
      "points" : 5                                                             
    }                                                                          
  ]                                                                            
}                                                                              
                                                                                 
{                                                                              
  "id" : 310,                                                                  
  "name" : "Kick Sauber Ferrari",                                              
  "points" : 4,                                                                
  "underPerformingDrivers" :                                                   
  [                                                                            
    {                                                                          
      "driverName" : "Valtteri Bottas",                                        
      "points" : 3                                                             
    },                                                                         
    {                                                                          
      "driverName" : "Zhou Guanyu",                                            
      "points" : 1                                                             
    }                                                                          
  ]                                                                            
}                                                                              
                                                                                 
 
10 rows selected.