より大きいおよびより小さいの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表にアクセスし、pointsが360より大きいドライバをチェックして、id、nameおよび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
}
}
');
前述の例は、teamのid、nameおよびpointsをフェッチします。次に、獲得したポイントが100以下であるチーム内のパフォーマンスが低いドライバのリストを作成し、nameおよびpointsをteamのデータとともに表示します。
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.