Input (Target table and Reference table)
CREATE TABLE target_mobile_data_dense (userid int, CallDuration double precision, DataCounter double precision, SMS double precision);
INSERT INTO target_mobile_data_dense VALUES(1, 0.0000333, 0.2, 0.1);
INSERT INTO target_mobile_data_dense VALUES(2, 0.5, 0.4, 0.4);
INSERT INTO target_mobile_data_dense VALUES(3, 1, 0.8, 0.9);
INSERT INTO target_mobile_data_dense VALUES(4, 0.01, 0.4, 0.2);
CREATE TABLE ref_mobile_data_dense (userid int, CallDuration double precision, DataCounter double precision, SMS double precision);
INSERT INTO ref_mobile_data_dense VALUES(5,0.93, 0.4, 0.7);
INSERT INTO ref_mobile_data_dense VALUES(6,0.83, 0.3, 0.6);
INSERT INTO ref_mobile_data_dense VALUES(7,0.73, 0.5, 0.7);
Query
SELECT target_id, reference_id, distancetype, cast(distance as decimal(36,8)) as distance FROM TD_VECTORDISTANCE (
ON target_mobile_data_dense as TargetTable
USING
TargetIDColumn('userid')
TargetFeatureColumns('CallDuration','DataCounter','SMS')
DistanceMeasure('euclidean','cosine','manhattan')
topk(2)
) as dt order by 3,1,2,4;
Output
| Target_ID |
Reference_ID |
DistanceType |
Distance |
| 1 |
1 |
cosine |
0.00000000 |
| 1 |
4 |
cosine |
0.00024659 |
| 2 |
2 |
cosine |
0.00000000 |
| 2 |
3 |
cosine |
0.00146903 |
| 3 |
2 |
cosine |
0.00146903 |
| 3 |
3 |
cosine |
0.00000000 |
| 4 |
1 |
cosine |
0.00024659 |
| 4 |
4 |
cosine |
0.00000000 |
| 1 |
1 |
euclidean |
0.00000000 |
| 1 |
4 |
euclidean |
0.22382881 |
| 2 |
2 |
euclidean |
0.00000000 |
| 2 |
4 |
euclidean |
0.5924474 |
| 3 |
2 |
euclidean |
0.81240384 |
| 3 |
3 |
euclidean |
0.00000000 |
| 4 |
1 |
euclidean |
0.22382881 |
| 4 |
4 |
euclidean |
0.00000000 |
| 1 |
1 |
manhattan |
0.00000000 |
| 1 |
4 |
manhattan |
0.30996670 |
| 2 |
2 |
manhattan |
0.00000000 |
| 2 |
4 |
manhattan |
0.69000000 |
| 3 |
2 |
manhattan |
1.40000000 |
| 3 |
3 |
manhattan |
0.00000000 |
| 4 |
1 |
manhattan |
0.30996670 |
| 4 |
4 |
manhattan |
0.00000000 |
Query
SELECT target_id, reference_id, distancetype, cast(distance as decimal(36,8)) as distance FROM TD_VECTORDISTANCE (
ON target_mobile_data_dense as TargetTable
ON ref_mobile_data_dense as ReferenceTable Dimension
USING
TargetIDColumn('userid')
TargetFeatureColumns('CallDuration','DataCounter','SMS')
RefIDColumn('userid')
RefFeatureColumns('CallDuration','DataCounter','SMS')
DistanceMeasure('euclidean','cosine','manhattan')
topk(2)
) as dt order by 3,1,2,4;
Output
| Target_ID |
Reference_ID |
DistanceType |
Distance |
| 1 |
5 |
cosine |
0.45486518 |
| 1 |
7 |
cosine |
0.32604815 |
| 2 |
5 |
cosine |
.02608923 |
| 2 |
7 |
cosine |
.00797609 |
| 3 |
5 |
cosine |
.02415054 |
| 3 |
7 |
cosine |
.00337338 |
| 4 |
5 |
cosine |
.43822243 |
| 4 |
7 |
cosine |
.31184844 |
| 1 |
6 |
euclidean |
.97408661 |
| 1 |
7 |
euclidean |
.99138861 |
| 2 |
6 |
euclidean |
.39862263 |
| 2 |
7 |
euclidean |
.39102430 |
| 3 |
5 |
euclidean |
.45265881 |
| 3 |
7 |
euclidean |
.45044423 |
| 4 |
6 |
euclidean |
.91782351 |
| 4 |
7 |
euclidean |
.88226980 |
| 1 |
6 |
manhattan |
1.42996670 |
| 1 |
7 |
manhattan |
1.62996670 |
| 2 |
6 |
manhattan |
.63000000 |
| 2 |
7 |
manhattan |
.63000000 |
| 3 |
5 |
manhattan |
.67000000 |
| 3 |
7 |
manhattan |
.77000000 |
| 4 |
6 |
manhattan |
1.32000000 |
| 4 |
7 |
manhattan |
1.32000000 |