0 レビュー
2 回答
php-同一の列の数を制限することでテーブルからデータを取得する方法MySql
昨日、ユーザーあたりのデータ量を制限するための基準として「user_id」を使用して、dbテーブルからデータを取得しようとしました。
テーブルhttps://prnt.sc/p53zhpからこのhttps://prnt.sc/p541wkのような形式でデータを取得し、数を制限しようとしました制限が2(count(user_id)<= 2)になるuser_idの出力レコードの数ですが、その方法がわかりません。このデータを取得するためにどのような種類のSQLリクエストを使用できますか?
わからない
0
レビュー
答え :
解決策:
RDBMSを想定して、ユーザーごとに上位2つのレコードのみを選択する解決策を次に示します。サブクエリでROW_NUMBER()
を使用して、同じ user_{-codeを持つレコードのグループ内の
、および次のように、外部クエリで無関係なレコードを除外します。id
によってレコードをランク付けできます。 -2}
SELECT *
から (
選択する
t。*、
ROW_NUMBER() OVER(PARTITION BY user _ id ORDER BY id)
mytableから
)x WHERE rn <= 2
MySQLの以前のバージョンでは、テーブルの自己 LEFT JOIN
を使用し、 GROUP BY
と{-を使用できました。 code-7}
は、結果をグループごとに最初の2つのレコードに制限します。
SELECT
t。id、
t.user _ id、
t.vip、
t.title、
t.description、
t.data
mytabletから
LEFT JOIN mytable t1 ON t1.user _ id = t.user _ idANDt1。id>t。id
{-コード-6}
t。id、
t.user _ id、
t.vip、
t.title、
t.description、
t.data
HAVING COUNT(t1。id)<2
わからない
0
レビュー
答え :
解決策:
問題がTransact-SQLなのかコードなのかわかりません。
SQLでは、「LIMIT」を使用してレコードを制限できます: https://www.w3schools.com/sql/sql_top.asp
コードでは、条件IFを使用できます。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。