房间 - 使用 MAX(numUsage) 获取对象

Sar*_*rah 2 java android dao android-room

我正在使用带有 Room Lib 的 Android Studio,但有一个小问题。我的实体类有一个名为“numUsage”(整数)的值但我不知道如何编写我的 DAO-Query 以获取具有 MAX/MIN(numUsage) 的一行/条目的 LiveData

所以基本上我想知道最高和最低数字的对象/条目。

Fe 条目号。1 有 5 numUsage Points Entry Number。2 有 2 个 numUsage 点

我想获得第 1 个条目的所有信息 - 因为它具有最高分。

我试过类似的东西

@Query("SELECT * FROM subscriptions WHERE (SELECT MAX(numUsage) FROM subscriptions)")
LiveData<Sub> getTopSub();
Run Code Online (Sandbox Code Playgroud)

但这似乎是错误的,因为我总是得到一个错误(我返回的是一个空对象)

我使用 LiveData 是因为在使用应用程序时,您可以为条目提供更多的 numUsage 点数,以便跟踪它。

也许这是一个相当简单的问题,但我找不到合适的答案!

San*_*Lee 8

有一种惯用的方法可以获取具有最大值/最小值的行。例如,在您的情况下,

@Query("SELECT * FROM subscriptions ORDER BY numUsage DESC LIMIT 1")
LiveData<Sub> getTopSub();
Run Code Online (Sandbox Code Playgroud)