add usersnet_narrowfriend view
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Thu, 10 Dec 2015 06:41:18 +0000 (07:41 +0100)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Thu, 10 Dec 2015 06:41:18 +0000 (07:41 +0100)
sql/sql.d/075-users-network.sql
sql/sql.d/910-usernet_devel.sql

index cf108c0..a371ec5 100644 (file)
@@ -23,6 +23,20 @@ CREATE INDEX #PFX#usersnet_owner_idx ON #PFX#usersnet (owner);
 CREATE INDEX #PFX#usersnet_target_idx ON #PFX#usersnet (target);
 CREATE UNIQUE INDEX #PFX#usersnet_owner_target_idx ON #PFX#usersnet (owner, target);
 
+DROP VIEW #PFX#usersnet_widefriend;
+CREATE VIEW #PFX#usersnet_widefriend
+    AS SELECT un.owner, ur.target, ur.friend, count(*) as count
+        FROM #PFX#usersnet AS un, #PFX#usersnet AS ur
+        WHERE un.target = ur.owner AND un.friend >= 4  -- 'un' is, at least, our friend
+        GROUP BY un.owner, ur.target, ur.friend;
+
+DROP VIEW #PFX#usersnet_narrowfriend;
+CREATE VIEW #PFX#usersnet_narrowfriend
+    AS SELECT un.owner, ur.target, ur.friend, count(*) as count
+        FROM #PFX#usersnet AS un, #PFX#usersnet AS ur
+        WHERE un.target = ur.owner AND un.friend >= 5  -- 'un' is, at least, our friend
+        GROUP BY un.owner, ur.target, ur.friend;
+
 DROP VIEW #PFX#usersnet_wideskill;
 CREATE VIEW #PFX#usersnet_wideskill
     AS SELECT un.owner, ur.target, SUM(ur.skill * un.trust) / SUM(un.trust) as skill, count(*) as count
index d082220..9efb9f9 100644 (file)
@@ -69,3 +69,5 @@ SELECT un.owner, ur.target, SUM(ur.skill * un.trust) AS num, SUM(un.trust) AS de
 
 SELECT us.login, pa.* FROM #PFX#usersnet_party pa, #PFX#users as us WHERE pa.target = us.code AND pa.owner = 10101;
 
+SELECT * FROM #PFX#usersnet_widefriend ORDER BY owner, target, friend;
+SELECT * FROM #PFX#usersnet_narrowfriend ORDER BY owner, target, friend;