回答編集履歴

2

調整

2022/09/07 02:51

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -1,2 +1,20 @@
1
1
  合致する条件をcaseで処理して和をとりorder by でDESCすればいいでしょう。
2
2
 
3
+ たとえばmysqlだとこんな風にかけます
4
+ ```SQL
5
+ create table tbl (id int primary key,c1 int,c2 int,c3 int);
6
+ insert into tbl values
7
+ (1,1,1,1),
8
+ (2,0,0,0),
9
+ (3,0,1,1),
10
+ (4,1,0,0),
11
+ (5,1,1,0),
12
+ (6,0,1,0);
13
+
14
+
15
+ select *,
16
+ (c1=1)+(c2=1)+(c3=1) as point
17
+ from tbl
18
+ having point>0
19
+ order by point desc
20
+ ```

1

調整

2022/09/07 01:38

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -1,2 +1,2 @@
1
- 合致する条件をsumしてorder by でDESCすればいいでしょう。
1
+ 合致する条件をcaseで処理して和をとりorder by でDESCすればいいでしょう。
2
2