powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Informix v12 - как получить такой результат?
7 сообщений из 7, страница 1 из 1
Informix v12 - как получить такой результат?
    #39618517
Blackmore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT 
	fc.case_id,
	report.rule_id,
	report.description as Description,
	max(report.total_charge) as MaxScoreValue
	FROM fraud_detection_rules as rule
	join fraud_case fc on rule.rule_id = fc.rule_id  
	join fraud_detection_report report on rule.rule_id = report.rule_id and report.subscriber_id = fc.subscriber_id
	WHERE report.subscriber_id=130
	group by 
	fc.case_id,
	report.rule_id
	,report.description
	order by description, rule_id, maxscorevalue desc



Получаю :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
case_id |rule_id |description                                |maxscorevalue |
-----------|----------|-----------------------------------------|---------------------|
7627     |38        |A1                                                |5578.1767     |
5923     |38        |A1                                                |5578.1767     |
3358     |38        |A1                                                |5578.1767     |
3499     |45        |GP                                               |5517.4793     |
8427     |34        |U2                                                |5570.6221     |
6397     |34        |U2                                                |5570.6221     |
3745     |34        |U2                                                |5570.6221     |
4375     |36        |W4                                               |5520.1263     |
3359     |35        |W7                                               |5521.8322     |



А надо как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
case_id |rule_id |description                                |maxscorevalue |
-----------|----------|-----------------------------------------|---------------------|
7627     |38        |A1                                                |5578.1767     |
3499     |45        |GP                                               |5517.4793     |
3745     |34        |U2                                                |5570.6221     |
4375     |36        |W4                                               |5520.1263     |
3359     |35        |W7                                               |5521.8322     |


Как мне это сделать? Желательно без поздапросов, но можно через CTE, или что там у Informix взамен есть.
...
Рейтинг: 0 / 0
Informix v12 - как получить такой результат?
    #39618671
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blackmore,

Добрый день.

У Informix есть своя ветка на этом форуме.
Может, лучше там спросить?
...
Рейтинг: 0 / 0
Informix v12 - как получить такой результат?
    #39618750
Blackmore,

группировку - не предлагать?
...
Рейтинг: 0 / 0
Informix v12 - как получить такой результат?
    #39618792
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blackmore,

На DB2 сработало бы что-то типа этого:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select min(case_id) case_id, rule_id, min(description) description, min(maxscorevalue) maxscorevalue
from (
SELECT 
	fc.case_id,
	report.rule_id,
	report.description as Description,
	max(report.total_charge) as MaxScoreValue
	FROM fraud_detection_rules as rule
	join fraud_case fc on rule.rule_id = fc.rule_id  
	join fraud_detection_report report on rule.rule_id = report.rule_id and report.subscriber_id = fc.subscriber_id
	WHERE report.subscriber_id=130
	group by 
	fc.case_id,
	report.rule_id
	,report.description
)
group by rule_id
...
Рейтинг: 0 / 0
Informix v12 - как получить такой результат?
    #39618793
Выкини поле из группировки:
Blackmore
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT 
	max(fc.case_id) as case_id,
	report.rule_id,
	report.description as Description,
	max(report.total_charge) as MaxScoreValue
	FROM fraud_detection_rules as rule
	join fraud_case fc on rule.rule_id = fc.rule_id  
	join fraud_detection_report report on rule.rule_id = report.rule_id and report.subscriber_id = fc.subscriber_id
	WHERE report.subscriber_id=130
	group by 
	-- fc.case_id,
	report.rule_id
	,report.description
	order by description, rule_id, maxscorevalue desc
...
Рейтинг: 0 / 0
Informix v12 - как получить такой результат?
    #39619045
Blackmore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя выкидывать, нужно обязательно вернуть case id для этого максимума
...
Рейтинг: 0 / 0
Informix v12 - как получить такой результат?
    #39619075
Blackmore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

Спасибо, то, что надо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Informix v12 - как получить такой результат?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]