sql >> データベース >  >> RDS >> Mysql

最も類似した数値行を見つけるためのMySQLクエリ

    @eggyalの方法を少し改良して、照合できるアイテムの数を組み込みました。

    SELECT   u2.user_id
    
    -- join our user to their scores
    FROM     (users u1 JOIN scores s1 USING (user_id))
    
    -- and then join other users and their scores
        JOIN (users u2 JOIN scores s2 USING (user_id))
          ON s1.item_id  = s2.item_id
         AND u1.user_id != u2.user_id
    
    -- filter for our user of interest
    WHERE    u1.user_id = ?
    
    -- group other users' scores together
    GROUP BY u2.user_id
    
    -- subtract the degree of difference in correlating scores from the number of correlating scores
    ORDER BY (SUM(s1.item_id = s2.item_id) - 
      ( SUM(ABS(s2.score - s1.score) + ABS(u2.self - u1.self) ) ) ) DESC
    


    1. AndroidStudioをSQLServerデータベースに接続するにはどうすればよいですか?

    2. 複数の列の値が同じであるMySQLテーブルがある場合、最新の2つを除くすべてのエントリを削除するにはどうすればよいですか?

    3. ケースステートメントによるグループ化

    4. MySQLブール全文検索を最適化する方法は? (または何に置き換えるのですか?)-C#